zoukankan      html  css  js  c++  java
  • Spring3 整合 Hibernate4实现数据库操作(1)

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

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

        //首先在web.xml中加入OpenSessionInViewFilter过滤器

       <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>
    在applicationContext.xml中的sessionFactory 中 添加<property name="hibernate.current_session_context_class">thread</property> 属性
    <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>
    
    在dao层部分的代码如下,通过sessionFactory可以获得当前的事务的session,通过session实现对数据库的操作

    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(); } }

      

  • 相关阅读:
    Android Camera子系统之Linux C应用开发人员View
    【Android】把外部文件拷贝的AVD安卓模拟器上的sdcard上,而且在AVD中浏览sdcard的文件
    HDU 2196 Computer(求树上每一个节点到其他点的最远距离)
    HDU 4081 Qin Shi Huang&#39;s National Road System 最小生成树
    scala 变量定义,基本操作符
    mybatis or
    Nginx
    hessian协议原理
    同一台电脑上装两个或两个以上的tomcat服务器
    端口号
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/4365578.html
Copyright © 2011-2022 走看看