已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hibernate温习(8)-使用JPAHibernateJPADAOXMLMySQL这次讲的JPA前一篇文章都有所介绍,这里呢就是结合hibernate.cfg.xml来讲讲,怎么用JPA进行CURD操作,类似于Hibernate的session进行CURD操作hibernate.cfg.xmlXml代码1. 2. 5. 6. 7. 8. com.mysql.jdbc.Driver9. jdbc:mysql:/test10. root11. root12. 13. org.hibernate.dialect.MySQLDialect14. 15. 216. 17. true18. 19. update20. 21. true22. 23. 24. 25. 26. 27. 28. JPA使用要求SRC的META-INF下要有persistence.xmlXml代码1. 2. 3. 7. 8. 9. 10. 11. 12. Hibernate这里用到的实体类映射是采用的是注解方式,其实就是JPA的注解User.javaJava代码1. packagecom.javacrazyer.domain;2. 3. importjavax.persistence.Entity;4. importjavax.persistence.GeneratedValue;5. importjavax.persistence.GenerationType;6. importjavax.persistence.Id;7. importjavax.persistence.Table;8. 9. Entity10. Table(name=user)11. publicclassUser12. Id13. GeneratedValue(strategy=GenerationType.AUTO)14. privateLongid;15. 16. privateStringname;17. privateStringpwd;18. publicLonggetId()19. returnid;20. 21. publicvoidsetId(Longid)22. this.id=id;23. 24. publicStringgetName()25. returnname;26. 27. publicvoidsetName(Stringname)28. =name;29. 30. publicStringgetPwd()31. returnpwd;32. 33. publicvoidsetPwd(Stringpwd)34. this.pwd=pwd;35. 36. 37. publicStringtoString()38. returnid=+id+,name=+name+,pwd=+pwd;39. 40. 41. UserDao.javaJava代码1. packagecom.javacrazyer.dao;2. 3. importjava.util.List;4. 5. importjavax.persistence.EntityManager;6. 7. mon.JPAUtil;8. importcom.javacrazyer.domain.PageModel;9. importcom.javacrazyer.domain.User;10. 11. 12. publicclassUserDao13. 14. publicvoidadd(Useruser)15. EntityManagerem=JPAUtil.getEntityManager();16. em.getTransaction().begin();17. 18. em.persist(user);19. 20. em.getTransaction().commit();21. em.close();22. 23. 24. SuppressWarnings(unchecked)25. publicListfindAll()26. EntityManagerem=JPAUtil.getEntityManager();27. em.getTransaction().begin();28. /JPAQL29. Listusers=em.createQuery(fromUser).getResultList();30. 31. em.getTransaction().commit();32. em.close();33. 34. returnusers;35. 36. 37. SuppressWarnings(unchecked)38. publicPageModelfindByPager(intpageNo,intpageSize)39. PageModelpm=newPageModel();40. 41. EntityManagerem=JPAUtil.getEntityManager();42. em.getTransaction().begin();43. 44. Longcount=(Long)em.createQuery(selectcount(o)fromUsero).getSingleResult();45. 46. if(count!=null)47. Listusers=em.createQuery(fromUser)48. .setFirstResult(pageNo-1)*pageSize)49. .setMaxResults(pageSize)50. .getResultList();51. pm.setRecordCount(Value();52. pm.setDatas(users);53. 54. em.getTransaction().commit();55. em.close();56. 57. returnpm;58. 59. 60. publicUserfindById(Longid)61. EntityManagerem=JPAUtil.getEntityManager();62. em.getTransaction().begin();63. 64. /Useruser=em.find(User.class,id);/相当于Hibernate的get()方法65. Useruser=em.getReference(User.class,id);/相当于Hibernate的load()方法66. 67. em.getTransaction().commit();68. em.close();69. 70. returnuser;71. 72. 73. publicvoidupdate(Useruser)74. EntityManagerem=JPAUtil.getEntityManager();75. em.getTransaction().begin();76. user=em.merge(user);77. 78. em.getTransaction().commit();79. em.close();80. 81. 82. publicvoiddelete(Useruser)83. EntityManagerem=JPAUtil.getEntityManager();84. em.getTransaction().begin();85. 86. em.remove(user);87. 88. em.getTransaction().commit();89. em.close();90. 91. 92. PageModel.javaJava代码1. packagecom.javacrazyer.domain;2. 3. importjava.util.List;4. 5. /*6. *分页组件(包含当前页结果数据列表和总记录数)7. *注意,它不是持久化实体类8. *9. */10. publicclassPageModel11. privateintrecordCount;12. privateListdatas;13. 14. 15. publicintgetRecordCount()16. returnrecordCount;17. 18. publicvoidsetRecordCount(intrecordCount)19. this.recordCount=recordCount;20. 21. publicListgetDatas()22. returndatas;23. 24. publicvoidsetDatas(Listdatas)25. this.datas=datas;26. 27. 28. JPAUtil.javaJava代码1. mon;2. 3. importjavax.persistence.EntityManager;4. importjavax.persistence.EntityManagerFactory;5. importjavax.persistence.Persistence;6. 7. 8. publicclassJPAUtil9. privatestaticEntityManagerFactoryfactory;10. static11. /加载src/META-INF/PERSISTENTCE.XML,根据配置文件中的键加载12. factory=Persistence.createEntityManagerFactory(xkkjpa);13. 14. privateJPAUtil()15. 16. publicstaticEntityManagergetEntityManager()17. returnfactory.createEntityManager();18. 19. 20. 21. 测试代码Java代码1. packagecom.javacrazyer.dao.test;2. 3. importorg.junit.Assert;4. importorg.junit.Test;5. 6. importcom.javacrazyer.dao.UserDao;7. importcom.javacrazyer.domain.PageModel;8. importcom.javacrazyer.domain.User;9. 10. publicclassUserDaoTest11. privateUserDaodao=newUserDao();12. 13. Test14. publicvoidtestAdd()15. Useruser=newUser();16. 17. user.setName(xxxx);18. user.setPwd(12345678790);19. 20. dao.add(user);21. 22. Assert.assertNotNull(user.getId();23. 24. 25. Test26. publicvoidtestFindByPager()27. PageModelpm=dao.findByPager(2,1);28. 29. for(Useruser:pm.getDatas()30. System.out.println(user);31. 32. 33. 34. 根据JPA对实体类进行CRUD的操作特点与Hibernate的处理方式做下对比Hibernate处理方式为:通过SessionFactory获得session,然后通过session的各种方法进行CURD操作JPA的处理方式为:通过EntityManagerFactory获得entityManager,然后通过entityManager的各种方法进行CURDHibernate是SessionFacotory sessionFactory=config.buidSessionFacotory()JPA是EntityManagerFactory entityManagerFa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国鲜橙汽水项目投资可行性研究报告
- 浸水保温服行业深度研究报告
- 11《百年孤独(节选)》公开课一等奖创新教学设计统编版高中语文选择性必修上册
- 中国造影剂项目投资可行性研究报告
- 丙体六六六行业深度研究报告
- 中国钢三柱暖气项目投资可行性研究报告
- 三角多用夹行业深度研究报告
- 机制牛皮纸行业深度研究报告
- 高温金属保护剂行业深度研究报告
- 热力网络管道布局方案
- 广州市天河区教育系统校园招聘(北京和武汉考点)笔试试题及答案2021
- (医学课件)眼眶解剖
- 教科版科学三年级上册第一单元《水》单元作业设计
- 2022年湖州市安吉县辅警考试试卷真题
- 文化艺术培训学校申办材料38223知识分享
- 项目三拆装与维护台虎钳
- 核工业无损检测VTⅡ级-试题
- GB/T 3785.1-2023电声学声级计第1部分:规范
- 总糖和还原糖的测定及葡萄糖标准曲线的绘制-3,5-二硝基水杨酸法课件
- 木瓜蛋白酶提取实验PPT
- 220kV变电站主接线讲义解读课件
评论
0/150
提交评论