Hibernate知识学习:http://justsee.iteye.com/blog/1061576
v注意Hibernate4在开发当中的一些改变 :http://snake-hand.iteye.com/blog/1995592
//首先在web.xml中加入OpenSessionInViewFilter过滤器
<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>
在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
<span style="color: #ff0000;">hibernate.current_session_context_class=thread</span>
</value>
</property>
<!--通过配置文件的方式获取数据源-->
<property name="mappingResources">
<list>
<!-- 以下用来列出所有的PO映射文件 -->
<value>hibernate.cfg.xml</value>
<value>test.cfg.xml</value>
</list>
</property>
</bean>
在dao层部分的代码如下,通过<em id="__mceDel" style="line-height: 1.5;">sessionFactory<span style="font-size: 13px;">可以获得当前的事务的session,通过session实现对数据库的操作</span></em>
<br>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() {
<span style="color: #ff0000;">Session session = this.getSession();
Transaction tran = session.beginTransaction();</span>
List<TestMessage> datas = session.createQuery("From TestMessage").list();
<span style="color: #ff0000;">tran.commit();</span>
return datas.get(7).getContent();
}
}