注意:本次的记录是在上一篇Hibernate入门的基础上应用的

1.目录

2.实体类修改

  1. package com.itheima.domain;
  2.  
  3. /*
  4. * 客户的javaBean
  5. * @author chenyanlong
  6. */
  7. public class Customer {
  8. private Long cust_id;
  9. private String cust_name;
  10. private Long cust_user_id;
  11. private Long cust_create_id;
  12. private String cust_source;
  13. private String cust_industry;
  14. private String cust_level;
  15. private String cust_linkman;
  16. private String cust_phone;
  17. private String cust_mobile;
  18. public Long getCust_id() {
  19. return cust_id;
  20. }
  21. public void setCust_id(Long cust_id) {
  22. this.cust_id = cust_id;
  23. }
  24. public String getCust_name() {
  25. return cust_name;
  26. }
  27. public void setCust_name(String cust_name) {
  28. this.cust_name = cust_name;
  29. }
  30. public Long getCust_user_id() {
  31. return cust_user_id;
  32. }
  33. public void setCust_user_id(Long cust_user_id) {
  34. this.cust_user_id = cust_user_id;
  35. }
  36. public Long getCust_create_id() {
  37. return cust_create_id;
  38. }
  39. public void setCust_create_id(Long cust_create_id) {
  40. this.cust_create_id = cust_create_id;
  41. }
  42. public String getCust_source() {
  43. return cust_source;
  44. }
  45. public void setCust_source(String cust_source) {
  46. this.cust_source = cust_source;
  47. }
  48. public String getCust_industry() {
  49. return cust_industry;
  50. }
  51. public void setCust_industry(String cust_industry) {
  52. this.cust_industry = cust_industry;
  53. }
  54. public String getCust_level() {
  55. return cust_level;
  56. }
  57. public void setCust_level(String cust_level) {
  58. this.cust_level = cust_level;
  59. }
  60. public String getCust_linkman() {
  61. return cust_linkman;
  62. }
  63. public void setCust_linkman(String cust_linkman) {
  64. this.cust_linkman = cust_linkman;
  65. }
  66. public String getCust_phone() {
  67. return cust_phone;
  68. }
  69. public void setCust_phone(String cust_phone) {
  70. this.cust_phone = cust_phone;
  71. }
  72. public String getCust_mobile() {
  73. return cust_mobile;
  74. }
  75. public void setCust_mobile(String cust_mobile) {
  76. this.cust_mobile = cust_mobile;
  77. }
  78. @Override
  79. public String toString() {
  80. return "Customer [cust_id=" + cust_id + ", cust_name=" + cust_name + ", cust_user_id=" + cust_user_id
  81. + ", cust_create_id=" + cust_create_id + ", cust_source=" + cust_source + ", cust_industry="
  82. + cust_industry + ", cust_level=" + cust_level + ", cust_linkman=" + cust_linkman + ", cust_phone="
  83. + cust_phone + ", cust_mobile=" + cust_mobile + "]";
  84. }
  85.  
  86. }

3.HibernateUtils.java

  1. package com.itheima.utils;
  2.  
  3. import javax.servlet.jsp.jstl.core.Config;
  4.  
  5. import org.hibernate.Session;
  6. import org.hibernate.SessionFactory;
  7. import org.hibernate.cfg.Configuration;
  8.  
  9. /*
  10. * Hibernate框架的工具
  11. * @author chenyanlong
  12. */
  13. public class HibernateUtils {
  14.  
  15. //Curl+shift+x
  16. private static final Configuration CONFIG;
  17. private static final SessionFactory FACTORY;
  18.  
  19. //编写静态代码
  20. static {
  21. //加载配置文件
  22. CONFIG =new Configuration().configure();
  23. //构造工厂
  24. FACTORY=CONFIG.buildSessionFactory();
  25. }
  26.  
  27. /*
  28. * 从工厂获取Session对象
  29. * @return
  30. */
  31. public static Session getSession() {
  32. return FACTORY.openSession();
  33.  
  34. }
  35. }

4. 保存数据

  1. /*
  2. * 1 保存数据
  3. */
  4. @Test
  5. public void testSave(){
  6. /*
  7. * 1.先加载配置文件
  8. * 2.创建SessionFactory对象,生成Session对象
  9. * 3.创建Sesison对象
  10. * 4.开启事务
  11. * 5.编写保存代码
  12. * 6.提交事务
  13. * 7.释放资源
  14. */
  15.  
  16. //1.加载配置文件
  17. Configuration config=new Configuration();
  18. //默认加载src目录下hibernate.cfg.xml的配置文件
  19. config.configure();
  20. //2.创建SessionFactory对象
  21. SessionFactory factory=config.buildSessionFactory();
  22. //3.创建session对象
  23. Session session=factory.openSession();
  24. //4.开启事务
  25. Transaction tr= session.beginTransaction();
  26.  
  27. //5.编写保存代码
  28. Customer customer = new Customer();
  29. customer.setCust_name("小李");
  30. customer.setCust_source("小广告");
  31.  
  32. session.save(customer);
  33. //6.提交事务
  34. tr.commit();
  35.  
  36. //7.释放资源
  37. session.close();
  38. factory.close();
  39. }

5.测试工具类

  1. /*
  2. * 2 测试工具类
  3. */
  4. @Test
  5. public void testSave2(){
  6. //原来:加载配置文件,获取Factory对象,获取Session
  7. Session session=HibernateUtils.getSession();
  8. Transaction tr=session.beginTransaction();
  9. Customer c=new Customer();
  10. c.setCust_name("小陈");
  11. session.save(c);
  12.  
  13. //提交事务
  14. tr.commit();
  15. //释放资源
  16. session.close();
  17.  
  18. }

6.测试get()方法

  1. /*
  2. * 3 测试get()方法,获取查询,通过主键查询一条记录
  3. */
  4. @Test
  5. public void testSave3(){
  6. //原来:加载配置文件,获取Factory对象,获取Session
  7. Session session=HibernateUtils.getSession();
  8. Transaction tr=session.beginTransaction();
  9.  
  10. //测试查询的两个参数,arg0查询javaBean的class对象,arg1主键的值
  11. Customer c=session.get(Customer.class, 95L);
  12. System.out.println(c);
  13.  
  14. //提交事务
  15. tr.commit();
  16. //释放资源
  17. session.close();
  18. }

7.删除方法

  1. /*
  2. * 4 测试删除的方法
  3. * 注意:删除或者修改,先查询再删除或者修改
  4. */
  5. @Test
  6. public void testDel(){
  7. //原来:加载配置文件,获取Factory对象,获取Session
  8. Session session=HibernateUtils.getSession();
  9. Transaction tr=session.beginTransaction();
  10.  
  11. //测试查询的两个参数,arg0查询javaBean的class对象,arg1主键的值
  12. Customer c=session.get(Customer.class, 95L);
  13. System.out.println(c);
  14.  
  15. //删除客户
  16. session.delete(c);
  17.  
  18. //提交事务
  19. tr.commit();
  20. //释放资源
  21. session.close();
  22. }

8.测试修改

  1. /*
  2. *5 测试修改
  3. */
  4. @Test
  5. public void testUpdate(){
  6. //原来:加载配置文件,获取Factory对象,获取Session
  7. Session session=HibernateUtils.getSession();
  8. Transaction tr=session.beginTransaction();
  9.  
  10. //测试查询的两个参数,arg0查询javaBean的class对象,arg1主键的值
  11. Customer c=session.get(Customer.class, 94L);
  12. System.out.println(c);
  13.  
  14. //设置客户信息
  15. c.setCust_name("小龙虾");
  16.  
  17. //修改或是更新
  18. session.update(c);
  19.  
  20. //session.saveOrUpdate(c); 添加或是修改
  21. //提交事务
  22. tr.commit();
  23. //释放资源
  24. session.close();
  25. }

9.测试查询方法

  1. /*
  2. * 测试查询方法
  3. */
  4. @Test
  5. public void testSel() {
  6. //加载配置文件
  7. Session session =HibernateUtils.getSession();
  8. Transaction tr=session.beginTransaction();
  9.  
  10. //创建查询的接口
  11. Query query=session.createQuery("from Customer");
  12.  
  13. //查询所有的数据
  14. List<Customer> list=query.list();
  15. for(Customer customer:list) {
  16. System.out.println(customer);
  17. }
  18.  
  19. //提交事务
  20. tr.commit();
  21.  
  22. //释放资源
  23. session.close();
  24.  
  25. }

Hibernate的入门(增删改查):的更多相关文章

  1. 肝 hibernate 配置and增删改查 and 测试

    已经通宵三天撸代码了,现在的我已经养成晚上修仙写代码的节奏了.....最近 刚刚复习到了 hibernate 谈谈 这篇文章就谈谈我对这货的理解吧. 在看这篇文章之前希望你 知道sessionfact ...

  2. Hibernate下的增删改查

    概述: 关系--对象映射的中间件,属于开源ORM框架,是我们业务逻辑层中的调用数据库的中间件 演变: jdbc---hibernater---mybatis hibernate和mybatis区别? ...

  3. hibernate搭建及其增删改查

    一.jar包 最基础的hibernatejar包,以及数据库驱动的jar包 二.数据库 t_user表 id int 主键 自动增长 name varchar() 三.配置文件 <?xml ve ...

  4. hibernate的配置, 增删改查

    路径:查找路径 实际上都是查找编译后的对应的路径,在bin文件夹中总 增删改必须开启事务才行 hibernate加载文件的两种方式 configure 1.引包 antlr-2.7.6.jar bac ...

  5. Rhythmk 学习 Hibernate 01 - maven 创建Hibernate 项目之 增删改查入门

    1.环境: Maven :3.1.1 开发工具:Spring Tool Suite 数据库 : Mysql  5.6 2.项目文件结构 文件代码: 2.1 .pom.xml <project x ...

  6. struts+hibernate 请求数据库增删改查(小项目实例)

      StudentAction.java package com.action; import java.util.ArrayList; import java.util.List; import j ...

  7. 5.Hibernate实现全套增删改查和ajax异步分页

    1.1 创建如下oracle数据库脚本 drop sequence seq_stu; create sequence SEQ_STU minvalue maxvalue start increment ...

  8. JPA+Hibernate 3.3 ——增删改查

    1.     查找对象   1)  用find()方法查找对象 public void getPerson(){ EntityManagerFactory factory = Persistence. ...

  9. Mongodb基本操作入门,增删改查和索引

    主要进程 mongod.exe为启动数据库实例的进程. mongo是一个与mongod进程进行交互的JavaScript shell进程,它提供了一些交互的接口函数用户对数据库的管理. 基本命令 sh ...

随机推荐

  1. Wpf ViewModel中 ObservableCollection不支持从调度程序线程以外的线程对其 SourceCollection 进行的更改

    Wpf中ViewModel类里面经常会需要用到ObservableCollection来管理列表数据,在做异步通信的时候也会碰到“不支持从调度程序线程以外的线程对其 SourceCollection ...

  2. ASP.NET Core 2.0 Cookie Authentication

    using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Builder; using Microso ...

  3. Nintex History in Form Table

    一.设置参数 二.调用WebService 三.For Each 调用 四.拼写HTML Table 结果: 特别提示:过滤人只要根据人来循环即可

  4. Root test & Ratio test

    几何级数(Geometric Series/Geometric Progression) Root test与Ratio test都依赖于几何级数求和理论,因此这里先讨论该理论. 在数学上,几何级数, ...

  5. mysql-语法大全

    DDL语句 库 创建 create database 库名 charset utf8; 删除 drop database 库名; 修改 alter database 库名 charset latin; ...

  6. Civil 3D 二次开发 创建AutoCAD对象—— 01 —— 创建直线

    在方法CreateLine内完成以下代码: 01 public void CreateLine() 02 { 03 PromptPointOptions ppo = new PromptPointOp ...

  7. 了解AutoCAD对象层次结构 —— 4 —— 符号表

    上一小节我们看到了符号表包含了一系列的表(共9个),这些表数量是固定的,用户不能增加新的表,也不能删除现有的表. 符号表名称 符号表功能 Block Table 块表 存储图形数据库中定义的块.此表中 ...

  8. kubernetes 创建系统用户来支持访问 dashboard

    Dashboard: 1.部署: 下载yaml文件  可以直接运行也可以下载下来kubectl apply -f https://raw.githubusercontent.com/kubernete ...

  9. [洛谷P4147] 玉蟾宫

    类型:单调栈 传送门:>Here< 题意:求一个$01$矩阵中最大子矩形(全是$1$)的面积 解题思路 单调栈的一个经典应用 考虑维护一个数组$p[i][j]$表示$(i,j)$往上最多有 ...

  10. 【BZOJ3814】【清华集训2014】简单回路 状压DP

    题目描述 给你一个\(n\times m\)的网格图和\(k\)个障碍,有\(q\)个询问,每次问你有多少个不同的不经过任何一个障碍点且经过\((x,y)\)与\((x+1,y)\)之间的简单回路 \ ...