ssh基本整合(配置版本)

Easter79
• 阅读 618

本篇文章,和大家分享一下如何使用ssh框架做基本的整合(配置式)

1.首先第一步我们需要部分jar包,我这里用的是idea工具,所以只需要引入对应的pom节点。

ssh基本整合(配置版本) ssh基本整合(配置版本)

 1 <!--spring配置-->
 2         <dependency>
 3             <groupId>org.springframework</groupId>
 4             <artifactId>spring-context</artifactId>
 5             <version>4.2.0.RELEASE</version>
 6         </dependency>
 7         <!--aop使用的jar-->
 8         <dependency>
 9             <groupId> org.aspectj</groupId >
10             <artifactId> aspectjweaver</artifactId >
11             <version> 1.8.7</version >
12         </dependency>
13         <!--SpringWeb-->
14         <dependency>
15             <groupId>org.springframework</groupId>
16             <artifactId>spring-web</artifactId>
17             <version>4.1.8.RELEASE</version>
18         </dependency>
19         <!--JavaEE-->
20         <dependency>
21             <groupId>javaee</groupId>
22             <artifactId>javaee-api</artifactId>
23             <version>5</version>
24         </dependency>
25 
26         <dependency>
27             <groupId>javax.servlet</groupId>
28             <artifactId>jstl</artifactId>
29             <version>1.2</version>
30             <scope>runtime</scope>
31         </dependency>
32 
33         <dependency>
34             <groupId>org.springframework</groupId>
35             <artifactId>spring-tx</artifactId>
36             <version>4.2.5.RELEASE</version>
37         </dependency>
38 
39         <!--c3p0-->
40         <dependency>
41             <groupId>com.mchange</groupId>
42             <artifactId>c3p0</artifactId>
43             <version>0.9.5.2</version>
44         </dependency>
45 
46         <!--hibernate jar包-->
47         <!--jta的jar包-->
48         <dependency>
49             <groupId>javax.transaction</groupId>
50             <artifactId>jta</artifactId>
51             <version>1.1</version>
52         </dependency>
53 
54         <dependency>
55             <groupId>org.hibernate</groupId>
56             <artifactId>hibernate-core</artifactId>
57             <version>5.0.6.Final</version>
58         </dependency>
59 
60         <!--Spring-ORM-->
61         <dependency>
62             <groupId>org.springframework</groupId>
63             <artifactId>spring-orm</artifactId>
64             <version> 4.2.2.RELEASE</version>
65         </dependency>
66 
67         <dependency>
68             <groupId>org.apache.struts</groupId>
69             <artifactId>struts2-core</artifactId>
70             <version>2.3.4.1</version>
71         </dependency>
72 
73         <dependency>
74             <groupId>org.apache.struts.xwork</groupId>
75             <artifactId>xwork-core</artifactId>
76             <version>2.3.4.1</version>
77         </dependency>
78 
79         <!--Struts整合Spring的jar包-->
80         <dependency>
81             <groupId>org.apache.struts</groupId>
82             <artifactId>struts2-spring-plugin</artifactId>
83             <version>2.3.4.1</version>
84         </dependency>
85 
86         <!--Struts2注解支持jar包-->
87         <dependency>
88             <groupId>org.apache.struts</groupId>
89             <artifactId>struts2-convention-plugin</artifactId>
90             <version>2.3.4.1</version>
91         </dependency>
92 
93         <dependency>
94             <groupId>com.oracle</groupId>
95             <artifactId>ojdbc6</artifactId>
96             <version>11.2.0.1.0</version>
97         </dependency>

所需maven节点

2.配置web.xml文件,既然叫ssh整合,那么spring的配置和struts2的配置也就必不可少了。

首先是spring配置,我们需要配置两点:

<!--Spring配置
    1.上下文  识别applicationContext.xml
    2.监听器 在Tomcat容器启动的时候,帮我创建Spring容器,并且放入application中
-->

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

然后是struts2的配置

<!--Struts2配置  核心过滤器 -->
  <filter>
    <filter-name>struts</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

注意:因为配置文件规定的顺序,所以spring的 listener配置要配置在struts2的filter后面。

3.接下来我们关注实体层

我这里以部门类为例

  private Integer deptno;          private String deptname;  //set,get方法省略

然后配置其hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="cn.ssh.entity">
    <class name="Dept" table="Dept" schema="y2166">
        <id name="deptno" column="DEPTNO">
            <generator class="native"></generator>
        </id>
        <property name="deptname" column="DEPTNAME"></property>
    </class>
</hibernate-mapping>

4.DAO层比较简单两个文件

IDeptDAO

public interface IDeptDAO {
    public int addDept(Dept dept);
}

DeptDAOImpl

public class DeptDAOImpl implements IDeptDAO {
    SessionFactory sessionFactory;    //set,get方法省略   public int addDept(Dept dept) {
        Session session = sessionFactory.getCurrentSession();
        Serializable count = session.save(dept);
        return (Integer)count;
    }
}

5.service层

IDeptService

public interface IDeptService {
    public int addDept(Dept dept);
}

DeptServiceImpl

 private IDeptDAO dao;   //set,get方法省略   @Transactional   public int addDept(Dept dept) {        return dao.addDept(dept);   }

6.action层

  public class DeptAction implements Action{
    private Dept dept;    //set,get方法省略        private IDeptService service;
    //set,get方法省略        public String execute() throws Exception {
        service.addDept(dept);
        return SUCCESS;
    }
  }

7.配置文件

首先jdbc.properties文件,此文件专门用于配置连接数据库的属性

jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.username=y2166
jdbc.password=y2166

然后就是最主要的applicationContext.xml文件

此文件内容较多

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
     http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
">
    <!--1.数据源  c3p0-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="${jdbc.url}"></property>
        <property name="driverClass" value="${jdbc.driverClassName}"></property>
        <property name="user" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>

    <!--2.识别到jdbc.properties-->
    <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>

    <!--3.形成SessionFactory-->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="hibernateProperties">
            <props>
                <!--方言-->
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
                <!--是否打印sql-->
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate5.SpringSessionContext</prop>
            </props>
        </property>
        <!--关联小配置-->
        <property name="mappingDirectoryLocations" value="classpath:cn/ssh/entity"></property>
    </bean>

    <!--4.dao-->
    <bean id="deptDao" class="cn.ssh.dao.DeptDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

    <!--5.service-->
    <bean id="deptService" class="cn.ssh.service.DeptServiceImpl">
        <property name="dao" ref="deptDao"></property>
    </bean>

    <!--6.action-->
    <bean id="deptAction" class="cn.ssh.action.DeptAction">
        <property name="service" ref="deptService"></property>
    </bean>

    <!--7.事务管理器-->
    <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

    <!--8.事务真实配置-->
    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
</beans>

以及最后的struts2文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
   <!--修改这个文件的时候,可以自动重新部署-->
    <constant name="struts.devMode" value="true" />
    <package name="default" namespace="/" extends="struts-default">
        <action name="add" class="deptAction">
            <result>/jsp/index.jsp</result>
        </action>
    </package>
</struts>

8.jsp界面

<form method="post" action="/add">
      部门名称: <input name="dept.deptname"/>
       <input type="submit" value="添加"/>
</form>

9.最终效果

ssh基本整合(配置版本)

点击添加后

ssh基本整合(配置版本)

数据库

ssh基本整合(配置版本)

以上就是使用ssh简单的使用

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k