HibernateDaoSupport类的使用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
核心提示:1、 继承了HibernateDaoSupport类的类获取session时,已不可用SessionFactory.OpenSessioon的形式来获取Session了,由于HibernateDaoSupport本身已有获取session的方法getSession(),所以直接用Session se=this.getSession();来获取, 2、 在依据hql获取用户
1
、 继承了HibernateDaoSupport类的类获取session时,已不可用SessionFactory.OpenSessioon的形式来获取Session了,由于HibernateDaoSupport本身已有获取session的方法getSession(),所以直接用Session se=this.getSession();来获取,
2
、 在依据hql获取用户信息时,继承了HibernateDaoSupport类的类中不能在使用Query类了,而是用List<Ssh> list = this.getHibernateTemplate().find(hql);形式来获取实体类集合
例:
import
java.util.List;
1.
import
org.hibernate.Query;
2.
import
org.hibernate.Session;
3.
import
org.hibernate.SessionFactory;
4.
import
org.springframework.context.ApplicationContext;
5.
import
org.springframework.context.support.ClassPathXmlApplicationContext;
6.
import
org.springframework.orm.hibernate3.support.HibernateDaoSupport;
7.
import
entity.Ssh;
8.
public
class
SshDAO
extends
HibernateDaoSupport {
9.
// private SessionFactory sf = null;
10.
// public SessionFactory getSf() {
11.
// return sf;
12.
// }
13.
// public void setSf(SessionFactory sf) {
14.
// this.sf = sf;
15.
// }
16.
// public String print(int id) {
17.
// Session se = sf.openSession();
18.
// String hql = "from Ssh where id=" + id;
19.
// Query q = se.createQuery("hql");
20.
// List<Ssh> list = q.list();
21.
// String a = list.get(1).getName();
22.
// return a;
23.
// }
24.
public
String print(
int
id) {
25.
Session se =
this
.getSession();
//
获取Session对象
26.
String hql =
"from Ssh where id="
+ id;
27.
//
依据hql获取实体集合,此处不要用Query类来实现
28.
List<Ssh> list =
this
.getHibernateTemplate().find(hql);
29.
String a = list.get(
0
).getName();
30.
return
a;
31.
}
32.
public
static
void
main(String[] args) {
33.
ApplicationContext ac=newClassPathXmlApplicationContext
34.
(
"spring/spring.xml"
);
35.
SshDAO ssh=(SshDAO)ac.getBean(
"sshD"
);
36.
System.out.println(ssh.print(
1
));
37.
}
38.
}
Spring.xml
文件篇:
在spring中配置继承了HibernateDaoSupport的类时此处的sessionFactory不能自定义! Sf为spring中的SessionFacotry的id
1.
<bean
id
=
"sshD"
class
=
"dao.SshDAO">
2.
<property
name
=
"sessionFactory">
3.
<ref
bean
=
"sf"
/>
4.
</property>
5.
</bean>
注意:此种情况适应于实体Dao类时系统自动生成时
转载于:https://blog.51cto.com/youxue/337859