您的位置:首页 > 编程语言 > Java开发

我的spring+hibernate整合方案

2013-04-21 20:03 253 查看
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(控制层)

*/

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: