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,如需转载请自行联系原作者