0%

HIBERNATEDAOSUPPORT的GETHIBERNATETEMPLATE()的FIND方法大全

Dao实现类继承HibernateDaoSupport类,该类是抽象类,该类中有一个HibernateTemplate的属性,通过this.getHibernateTemplate()可获得一个HibernateTemplate类的对象。

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public class CustomerDaoImpl1 extends HibernateDaoSupport implements
CustomerDao {

// 添加记录
@Override
public void insert(Customer entity) {
this.getHibernateTemplate().save(entity);
}

// 删除记录(按照实体删除)
@Override
public void delete(Customer entity) {
// TODO Auto-generated method stub
this.getHibernateTemplate().delete(entity);

}

// 删除记录(按id删除),不成功
//
@Override
public void deleteById(int id) {
// TODO Auto-generated method stub
// this.getHibernateTemplate().delete(entity);
}

// 查询所有的记录
@Override
public List<Customer> selectAll() {
// TODO Auto-generated method stub
List<Customer> entities = this.getHibernateTemplate().find(
“from Customer”);
return entities;
}

// 按照id查找记录
@Override
public Customer selectById(int id) {
// TODO Auto-generated method stub
List<Customer> entities=this.getHibernateTemplate().find(“from Customer where id=”+id);
if(entities.size()>0){
Customer entity=entities.get(0);
return entity;
}
return null;
}

// 更新的方法
@Override
public void update(Customer entity) {
// TODO Auto-generated method stub
this.getHibernateTemplate().update(entity);
}

}

一些常用的方法列子:

find(String queryString);
示例:this.getHibernateTemplate().find(“from bean.User”);

返回所有User对象

二、find(String queryString , Object value);

示例:this.getHibernateTemplate().find(“from bean.User u where u.name=?”,“test”);

或模糊查询:this.getHibernateTemplate().find(“from bean.User u where u.name like ?”,“%test%”);

返回name属性值为test的对象(模糊查询,返回name属性值包含test的对象)

三、find(String queryString, Object[] values);

示例:String hql=“from bean.User u where u.name=? and u.password=?”

this.getHibernateTemplate().find(hql, new String[]{“test”,“123”});

返回用户名为test并且密码为123的所有User对象

四、findByExample(Object exampleEntity)

示例:

1
2
3
4
5
6
7
User u=new User();

u.setPassword(“123”);//必须 符合的条件但是这两个条件时并列的(象当于sql中的and)

u.setName(“bb”);

list=this.getHibernateTemplate().findByExample(u);

返回:用户名为bb密码为123的对象

五、findByExample(Object exampleEntity, intfristResults, int maxResults)

示例:

1
2
3
4
5
6
7
User u=new User();

u.setPassword(“123”);//必须 符合的条件但是这两个条件时并列的(象当于sql中的and)

u.setName(“bb”);

list=this.getHibernateTemplate().findByExample(u,fristResults,maxResults);

返回:满足用户名为bb密码为123,自start起共max个User对象。(对象从0开始计数)

六、findByNamedParam(String queryString , String paramName , Object value)

使用以下语句查询:

1
2
3
4
5
6
7
8
9
String queryString =“select count(*) from bean.User u where u.name=:myName”;

String paramName=“myName”;

String value=“xiyue”;

list=this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);

System.out.println(list.get(0));

返回name为xiyue的User对象的条数

七、findByNamedParam(String queryString , String[] paramName , Object[] value)

示例:

1
2
3
4
5
6
7
String queryString =“select count(*) from bean.User u where u.name=:myName and u.password=:myPassword”;

String[] paramName= new String[]{“myName”,“myPassword”};

String[] value= new String[]{“xiyue”,“123”};

this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);

返回用户名为xiyue密码为123的User对象