SSH整合笔记2016-3-1

集成Struts,hibernate,spring三大框架,

先集合Spring 和 Hibernate

新建项目java项目SSH2

①  导入Spring和hibernate和数据库的架包

该架包分别存放在Spring lib 和Hibernate lib中

②  项目src目录下新建beans.xml文件

1、  导入Spring配置模板

<beansxmlns="http://www.springframework.org/schema/beans"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xmlns:context="http://www.springframework.org/schema/context"

      xmlns:aop="http://www.springframework.org/schema/aop"

      xmlns:tx="http://www.springframework.org/schema/tx"

       xsi:schemaLocation="http://www.springframework.org/schema/beans

          http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

          http://www.springframework.org/schema/context

          http://www.springframework.org/schema/context/spring-context-2.5.xsd

              http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.5.xsd

              http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<context:component-scanbase-package="cn.luo"/>    采用扫描的方式,扫描该包所有类

2、  将sessionFactory交于Spring管理

<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

              <propertyname="dataSource" ref="dataSource"/>

               <propertyname="mappingResources">

                           <list>

                             <value>com/luo/bean/Employee.hbm.xml</value>

                           </list>

              </property>

               <propertyname="hibernateProperties">  实体类对应的映射文件的位置

                        <value>

                            hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

                             hibernate.hbm2ddl.auto=update

                             hibernate.show_sql=false

                             hibernate.format_sql=false

                         </value>

               </property>

    </bean>                                 数据库名

3、  配置c3p0数据源

<beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close">

              <property name="driverClass"value="org.gjt.mm.mysql.Driver"/>

              <propertyname="jdbcUrl" value="jdbc:mysql://localhost:3306/ssh2?useUnicode=true&amp;characterEncoding=UTF-8"/>

              <property name="user"value="root"/>

              <propertyname="password" value="1234"/>

              <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->

              <propertyname="initialPoolSize" value="1"/>

              <!--连接池中保留的最小连接数。-->

              <propertyname="minPoolSize" value="1"/>

              <!--连接池中保留的最大连接数。Default:15 -->

              <propertyname="maxPoolSize" value="300"/>

              <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->

              <propertyname="maxIdleTime" value="60"/>     

              <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default:3 -->

              <propertyname="acquireIncrement" value="5"/>        

              <!--每60秒检查所有连接池中的空闲连接。Default: 0 -->

              <propertyname="idleConnectionTestPeriod" value="60"/>

    </bean>

同时将数据源注入到SessionFactory

4、  配置事务管理器

<beanid="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">

              <propertyname="sessionFactory" ref="sessionFactory"/>

    </bean>

5、  开启事物管理

<!--使用基于注解方式配置事务-->

    <tx:annotation-driventransaction-manager="txManager"/>

注意:如果上述显示错误,则必须引入对应的.xsd文件

上述则就将Spring和Hibernate集成了,测试如下

新建测试类,实例化Spring容器,数据库自动创建表,则成功

③  新建实体类,并提供getter setter

由于实体类中采用枚举类型,即性别,故建枚举类

④  写实体类的映射文件.hb.xml

<?xmlversion="1.0" encoding="UTF-8"?>

<!DOCTYPEhibernate-mapping PUBLIC

        "-//Hibernate/Hibernate MappingDTD 3.0//EN"

       "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mappingpackage="com.luo.bean">

    <class name="Employee"table="employee">

       <id name="username"length="20"/>

       <property name="password"length="20" not-null="true"/>    枚举类的位置

      <property name="gender"not-null="true" length="5">

        <typename="org.hibernate.type.EnumType">

                   <param name="enumClass">com.luo.bean.Gender</param>

<!-- 12java.sql.Types.VARCHAR常量值,即保存枚举的字面值到数据库。如果不指定type参数,保存枚举的索引值(0开始)到数据库-->

                   <paramname="type">12</param>

        </type>

        </property>

    </class>

</hibernate-mapping>

⑤  开发业务bean

1、  新建com.luo.service

新建EmployeeService.java

2、  新建service的实现类,采用注解的方式实现Spring的管理

在spring配置文件中,配置了事物,和,Sessionfactory,由于采用扫描的方式

在实现类中

@Service指注解业务类,交于Spring容器管理

@Transactional指开启事物,由于在实现类中,采用Hibernate对数据库进行操作,故有此注解

@Transactional(propation=Propagation.NOT_SUPPPRTED)指此方法不使用事务

具体的增加删除修改的实现方法如下

由于在实现类中需要SessionFactory,故先将spring配置的SessionFactory注入到实现类中:

codesmith

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值