且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Spring3 整合 Hibernate4实现数据库操作(1)

更新时间:2022-10-03 12:57:32

Hibernate知识学习:http://justsee.iteye.com/blog/1061576

v注意Hibernate4在开发当中的一些改变  :http://snake-hand.iteye.com/blog/1995592

1
//首先在web.xml中加入OpenSessionInViewFilter过滤器
1
2
3
4
5
6
7
8
9
<br>   <filter> 
      <filter-name>openSessionInViewFilter</filter-name> 
      <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class
    </filter>
     
    <filter-mapping>
       <filter-name>openSessionInViewFilter</filter-name>
       <url-pattern>/*</url-pattern> 
    </filter-mapping> 
1
在applicationContext.xml中的sessionFactory 中 添加<property name="hibernate.current_session_context_class">thread</property> 属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <!-- 依赖注入数据源,正式上下文定义的dataSource -->
        <property name="dataSource" ref="dataSource" />
   
        <property name="hibernateProperties">
            <value>
                hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
                hibernate.hbm2ddl.auto=update
                hibernate.show_sql=true
                hibernate.format_sql=false
                hibernate.cache.use_second_level_cache=true
                hibernate.cache.use_query_cache=false
                hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
                hibernate.current_session_context_class=thread
            </value>
       </property>
        
        <!--通过配置文件的方式获取数据源-->
        <property name="mappingResources">
            <list>
               <!-- 以下用来列出所有的PO映射文件 -->
               <value>hibernate.cfg.xml</value>
               <value>test.cfg.xml</value>
            </list>
        </property>     
        
  </bean>
1
在dao层部分的代码如下,通过sessionFactory可以获得当前的事务的session,通过session实现对数据库的操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class MessageDaoImpl implements MessageDao{
     
    private SessionFactory sessionFactory; 
      
    public Session getSession() { 
        return sessionFactory.getCurrentSession(); 
    
   
    public SessionFactory getSessionFactory() { 
        return sessionFactory; 
    
   
    public void setSessionFactory(SessionFactory sessionFactory) { 
        this.sessionFactory = sessionFactory; 
    
     
    @Override
    public void saveMessage(TestMessage tm) {
        Session session = this.getSession();
        Transaction tran = session.beginTransaction();
        session.save(tm);
        tran.commit();
    }
 
    @Override
    public String getMessage() {
        Session session = this.getSession();
        Transaction tran = session.beginTransaction();
        List<TestMessage> datas = session.createQuery("From TestMessage").list();
        tran.commit();
        return datas.get(7).getContent();
    }
}









本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/4365578.html,如需转载请自行联系原作者