




已阅读5页,还剩11页未读, 继续免费阅读
HibernateTemplate详解_免费下载.doc.doc 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
getHibernateTemplate()详解 一、getHibernateTemplate()与getSession()区别: 自动生成hibernate配置文件的时候,会在dao层用到getSession()方法来操作数据库记录,但是他还有个方法getHibernateTemplate(),这两个方法究竟有什么区别呢? 1.使用getSession()方法你只要继承sessionFactory,而使用getHibernateTemplate()方法必须继承 HibernateDaoSupport当然包括sessionFactory,这点区别都不是特别重要的,下面这些区别就很重要了 2.getSession()方法是没有经过spring包装的,spring会把最原始的session给你,在使用完之后必须自己调用相应的 close方法,而且也不会对声明式事务进行相应的管理,一旦没有及时关闭连接,就会导致数据库连接池的连接数溢 出,getHibernateTemplate()方法是经过spring封装的,例如添加相应的声明式事务管理,由spring管理相应的连接。在实际的使用过程中发现的确getHibernateTemplate()比getSession()方法要好很多,但是有些方法在getHibernateTemplate()并没有提供,这时我们用HibernateCallback 回调的方法管理数据库.例如如下代码:/* * 使用 hql 语句进行操作 * param hql HSQL 查询语句(使用回调函数访问外部变量,必须是final的) * param offset 开始取数据的下标 * param length 读取数据记录数 * return List 结果集*/public List getListForPage ( final String hql , final int offset , final int length ) List list = getHibernateTemplate().executeFind ( new HibernateCallback ( ) public Object doInHibernate ( Session session ) throws HibernateException, SQLException Query query = session.createQuery ( hql ) ; query.setFirstResult ( offset ) ; query.setMaxResults ( length ) ; List list = query.list ( ) ; return list ; ) ; return list ;二、getHibernateTemplate()常用方法Java代码1. Java代码2. 1、find(StringqueryString);3. 4. 示例:this.getHibernateTemplate().find(frombean.User);5. 6. 返回所有User对象7. 8. 9. 2、find(StringqueryString,Objectvalue);10. 11. 示例:this.getHibernateTemplate().find(frombean.U=?,test);12. 13. 或模糊查询:this.getHibernateTemplate().find(frombean.Ulike?,%test%);14. 15. 返回name属性值为test的对象(模糊查询,返回name属性值包含test的对象)16. 17. 18. 3、find(StringqueryString,Objectvalues);19. 20. 示例:Stringhql=frombean.U=?andu.password=?21. 22. this.getHibernateTemplate().find(hql,newStringtest,123);23. 24. 返回用户名为test并且密码为123的所有User对象25. 26. 27. 28. 29. 4、findByExample(ObjectexampleEntity)30. 31. 示例:32. 33. Useru=newUser();34. 35. u.setPassword(123);/必须符合的条件但是这两个条件时并列的(象当于sql中的and)36. 37. u.setName(bb);38. 39. list=this.getHibernateTemplate().findByExample(u,start,max);40. 41. 返回:用户名为bb密码为123的对象42. 43. 44. 45. 5、findByExample(ObjectexampleEntity,intfirstResult,intmaxResults)46. 47. 示例:48. 49. Useru=newUser();50. 51. u.setPassword(123);/必须符合的条件但是这两个条件时并列的(象当于sql中的and)52. 53. u.setName(bb);54. 55. list=this.getHibernateTemplate().findByExample(u,start,max);56. 57. 返回:满足用户名为bb密码为123,自start起共max个User对象。(对象从0开始计数)58. 59. 60. 61. -62. 63. 6、findByNamedParam(StringqueryString,StringparamName,Objectvalue)64. 65. 66. 67. 使用以下语句查询:68. 69. StringqueryString=selectcount(*)frombean.U=:myName;70. 71. StringparamName=myName;72. 73. Stringvalue=xiyue;74. 75. this.getHibernateTemplate().findByNamedParam(queryString,paramName,value);76. 77. System.out.println(list.get(0);78. 79. 返回name为xiyue的User对象的条数80. 81. 82. 7、findByNamedParam(StringqueryString,StringparamName,Objectvalue)83. 84. 示例:85. 86. StringqueryString=selectcount(*)frombean.U=:myNameandu.password=:myPassword;87. 88. StringparamName=newStringmyName,myPassword;89. 90. Stringvalue=newStringxiyue,123;91. 92. this.getHibernateTemplate().findByNamedParam(queryString,paramName,value);93. 94. 返回用户名为xiyue密码为123的User对象95. 96. 97. 8、findByNamedQuery(StringqueryName)98. 99. 示例:100. 101. 1、首先需要在User.hbm.xml中定义命名查询102. 103. 104. 105. .106. 107. 108. 109. 114. 115. 116. 117. 118. 119. 2、如下使用查询:120. 121. this.getHibernateTemplate().findByNamedQuery(queryAllUser);122. 123. 124. 9、findByNamedQuery(StringqueryName,Objectvalue)125. 126. 示例:127. 128. 1、首先需要在User.hbm.xml中定义命名查询129. 130. 131. 132. .133. 134. 135. 136. 141. 142. 143. 144. 145. 146. 2、如下使用查询:147. 148. this.getHibernateTemplate().findByNamedQuery(queryByName,test);149. 150. 151. 10、findByNamedQuery(StringqueryName,Objectvalue)152. 153. 示例:154. 155. 1、首先需要在User.hbm.xml中定义命名查询156. 157. 158. 159. .160. 161. 162. 163. 168. 169. 170. 171. 172. 173. 2、如下使用查询:174. 175. Stringvalues=newStringtest,123;176. 177. this.getHibernateTemplate().findByNamedQuery(queryByNameAndPassword,values);178. 179. 180. 11、findByNamedQueryAndNamedParam(StringqueryName,StringparamName,Objectvalue)181. 182. 示例:183. 184. 1、首先需要在User.hbm.xml中定义命名查询185. 186. 187. 188. .189. 190. 191. 192. 197. 198. 199. 200. 201. 202. 2、如下使用查询:203. 204. this.getHibernateTemplate().findByNamedQuery(queryByName,myName,test);205. 206. 207. 12、findByNamedQueryAndNamedParam(StringqueryName,StringparamName,Objectvalue)208. 209. 示例:210. 211. 1、首先需要在User.hbm.xml中定义命名查询212. 213. 214. 215. .216. 217. 218. 219. 224. 225. 226. 227. 228. 229. 2、如下使用查询:230. 231. Stringnames=newStringmyName,myPassword;232. 233. Stringvalues=newStringtest,123;234. 235. this.getHibernateTemplate().findByNamedQuery(queryByNameAndPassword,names,values);236. 237. 238. 13、findByValueBean(StringqueryString,Objectvalue);239. 240. 示例:241. 242. 1、定义一个ValueBean,属性名必须和HSQL语句中的:后面的变量名同名,此处必须至少有两个属性,分别为myName和myPassword,使用setter方法设置属性值后243. 244. ValueBeanvalueBean=newValueBean();245. 246. valueBean.setMyName(test);247. 248. valueBean.setMyPasswrod(123);249. 250. 2、251. 252. StringqueryString=frombean.U=:myNameandu.password=:myPassword;253. 254. this.getHibernateTemplate().findByValueBean(queryString,valueBean);255. 256. 257. 14、findByNamedQueryAndValueBean(StringqueryName,Objectvalue);258. 259. 示例:260. 261. (1)、首先需要在User.hbm.xml中定义命名查询262. 263. 264. 265. .266. 267. 268. 269. 274. 275. 276. 277. 278. 279. (2)、定义一个ValueBean,属性名必须和User.hbm.xml命名查询语句中的:后面的变量名同名,此处必须至少有两个属性,分别为myName和myPassword,使用setter方法设置属性值后280. 281. ValueBeanvalueBean=new
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版(2024)九年级上册23.1 图形的旋转第1课时教案
- 七年级地理上册 1.1《地球和地球仪》经线、纬线教学设计 (新版)新人教版
- 白内障病人护理查房
- 六年级语文上册 第六单元 18 古诗三首 浪淘沙教学设计 新人教版
- 五年级上信息技术教学设计-图文配乐秀诗作-交大版
- 2024中国铁路工程集团有限公司所属单位岗位合集笔试参考题库附带答案详解
- 2024中国通号资本运营公司(筹)总经理副总经理岗位招聘4人笔试参考题库附带答案详解
- 七年级道德与法治上册 第四单元 生命的思考教学设计 新人教版
- 2024中国联通国际有限公司校园招聘(4个岗位)笔试参考题库附带答案详解
- 写作《语言简明》教学设计2023-2024学年统编版语文七年级下册
- 育儿真经知到课后答案智慧树章节测试答案2025年春浙江中医药大学
- 2025合同模板个人车位转让合同 范本
- 2025-2030动力电池回收产业市场深度调研及发展趋势与投资战略研究报告
- 2025《中国建设银行房产抵押合同》
- 企业集团文件与档案管理制度
- 2024福建漳州市九龙江集团有限公司招聘10人笔试参考题库附带答案详解
- 建筑行业劳动保护制度与措施
- 中国少数民族文化知到课后答案智慧树章节测试答案2025年春云南大学
- 初级车工(五级)技能认定理论考试题(附答案)
- 2025年监理工程师考试《建设工程监理案例分析(水利工程)》综合案例题
- 2025年自考学位英语试题及答案
评论
0/150
提交评论