HibernateTemplate类的使用

HibernateTemplate 提供非常多的常用方法来完成基本的操作,美国空间,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。

查询的几种方法

1. find(String queryString);  queryString:hql查询语句

String queryString = “from user”;this.getHibernateTemplate().find(queryString);

  返回:user对象的集合

2. find(String queryString , Object value);  queryString:hql查询语句  value:查询条件的值

String queryString = “from user u where u.name=?”;this.getHibernateTemplate().find(queryString, “test”);

  返回:name属性值为test的对象的集合3. find(String queryString, Object[] values);  queryString:hql查询语句  value:查询条件的值的数组

String hql= “from bean.User u where u.name=? and u.password=?”;this.getHibernateTemplate().find(hql, new String[]{“test”, “123”});

  返回:name属性值为“test”并且password属性值为“123”的对象的集合

4. findByExample(Object exampleEntity)  exampleEntity:要查询的对象的实例

User u=new User();u.setPassword(“123”);u.setName(“bb”);this.getHibernateTemplate().findByExample(u);

  返回:name属性值为“bb”并且password属性值为“123”的对象的集合  此方法查询即为sql查一张表的“and”条件查询

5. findByExample(Object exampleEntity, int firstResult, int maxResults)  exampleEntity:要查询的对象的实例  firstResult:查询结果的起始行  maxResults:查询结果的总数

User u=new User();u.setPassword(“123”);u.setName(“cc”);int start = 0;int max = 10;this.getHibernateTemplate().findByExample(u,start,max);

  返回:name属性值为“cc”并且password属性值为“123”,自0起共10个对象的集合(对象从0开始计数)

6. findByNamedParam(String queryString , String paramName , Object value)  queryString:hql查询语句  paramName:查询条件中引用占位符的名称  value:引用占位符的值

String queryString = “select count(*) from user u where u.name=:myName”; String paramName= “myName”; String value= “xiyue”; this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);

  返回:name属性值为“xiyue”的对象的集合

7. findByNamedParam(String queryString , String[] paramNames , Object[] values)  queryString:hql查询语句  paramNames:查询条件中引用占位符的名称的数组  values:引用占位符的值的数组

String queryString = “select count(*) from 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, paramNames, values);

  返回:name属性值为“xiyue”,并且password属性值为“123”的对象的集合

getSession()与getHibernateTemplate()

1. 使用getSession()方法你只要继承 sessionFactory,而使用getHibernateTemplate()方法必须继承HibernateDaoSupport当然包括 sessionFactory2. getSession()方法是没有经过spring包装的,spring会把最原始的session给你,在使用完之后必须自己调用相应的close方法,而且也不会对声明式事务进行相应的管理,香港空间,一旦没有及时关闭连接,就会导致数据库连接池的连接数溢出,而getHibernateTemplate()方法是经过spring封装的,例如添加相应的声明式事务管理,由spring管理相应的连接。3. 另外,由于hibernate4已经完全可以实现事务了 与spring3.1中的hibernatedao,hibernateTemplete等有冲突,所以从spring3.1里已经不提供hibernatedaosupport,hibernateTemplete了,只能用hibernate原始的方式用getSession()。

,网站空间谁也不跟谁一辈子,有些事情没必要记在心上。

HibernateTemplate类的使用

相关文章:

你感兴趣的文章:

标签云: