HibernateTemplate类的用法
当前位置:以往代写 > JAVA 教程 >HibernateTemplate类的用法
2019-06-14

HibernateTemplate类的用法

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虽然包罗 sessionFactory

2. getSession()要领是没有颠末spring包装的,spring会把最原始的session给你,在利用完之后必需本身挪用相应的close要领,并且也不会对声明式事务举办相应的打点,一旦没有实时封锁毗连,就会导致数据库毗连池的毗连数溢出,而getHibernateTemplate()要领是颠末spring封装的,譬喻添加相应的声明式事务打点,由spring打点相应的毗连。

3. 别的,由于hibernate4已经完全可以实现事务了 与spring3.1中的hibernatedao,hibernateTemplete等有斗嘴,所以从spring3.1里已经不提供hibernatedaosupport,hibernateTemplete了,只能用hibernate原始的方法用getSession()。

    关键字:

在线提交作业