我的spring+hibernate整合方案

来源:互联网 发布:沙恭尼 知乎 编辑:程序博客网 时间:2024/05/22 01:49
1、spring的jar包手动添加,web.xml
    加入
    <!-- 指定spring配置文件位置 -->
<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>
    <!--加载多个spring配置文件 -->
    /WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml
   </param-value>
</context-param>
<!-- 定义SPRING监听器,加载spring -->
<listener>
   <listener-class>
    org.springframework.web.context.ContextLoaderListener
   </listener-class>
</listener>
2、hibernate用myeclipse添加,生成独立的src/hibernate.cfg.xml    
    这里面配置hibernate,以及*.hbm.xml
    在其中设置数据库方言(数据库类型)

3、applicationContext.xml中c3p0配置数据源,然把数据源注入sessionFactory
      <bean id="dataSource" class="com.mchange.v2.c3p0. ComboPooledDataSource"
        destroy-method="close">
        <!-- 指定连接数据库的驱动 -->
        <property name="driverClass" value="com.mysql.jdbc.Driver" />         <!-- 指定连接数据库的URL -->
        <property name="jdbcUrl" value="jdbc:mysql://localhost/j2ee" />
        <!-- 指定连接数据库的用户名 -->
        <property name="user" value="root" />         <!-- 指定连接数据库的密码 -->
        <property name="password" value="32147" />         <!-- 指定连接数据库连接池的最大连接数 -->
        <property name="maxPoolSize" value="40" />         <!-- 指定连接数据库连接池的最小连接数 -->
        <property name="minPoolSize" value="1" />         <!-- 指定连接数据库连接池的初始化连接数 -->
        <property name="initialPoolSize" value="1" />         <!-- 指定连接数据库连接池的连接最大空闲时间 -->
        <property name="maxIdleTime" value="20" />
    </bean>
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="configLocation" value="classpath:hibernate.cfg.xml" />
    </bean>
    
配置编码方式,用spring编码过滤器 web.xml中加入最上面
<filter>
   <filter-name>SetCharacterEncoding</filter-name>
   <filter-class>
    org.springframework.web.filter.CharacterEncodingFilter
   </filter-class>
   <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
   </init-param>
   <init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
   </init-param>

</filter>




spring注解,


@Repository("userDao")  //等价于在applicationContext.xml声明了一个id为user到的bean
public class UserDao extends HibernateDaoSupport{
   @Resource(name="sessionFactory")//把spring容器中id为sessionFactory的bean注入到本方法中
    public void setMySessionFactory(SessionFactory sessionFactory) {
        super.setSessionFactory(sessionFactory);
    }
    
    /*只需要在对应的类上加上一个@Component注解,

        就将该类定义为一个Bean了。

       Spring还提供了更加细化的注解形式:@Repository(DAO层)

     @Service(服务层)

    @Controller(控制层)

*/


}


原创粉丝点击