hibernate学习之实体类以及crud操

来源:互联网 发布:灵族捏脸数据 编辑:程序博客网 时间:2024/05/21 17:46

  • 实体类的编写规则

1.实体类的属性是私有的

2.私有属性要使用公开的get,set方法

3.要求实体类有属性作为唯一值(一般使用id值)

4.实体类属性建议不使用基本数据类型,而是使用基本数据类型对应的包装类

(1)八个基本数据类型的包装类

-int ——Integer

-char——Character

-其他都是首字母大写比如 double——Double

(2)比如表示学生的分数,假如 int score;

- 比如学生得了0分,int score = 0;

- 如果表示学生没有参加考试,int score = 0; 不能准确的表示学生是参加考试

· 解决:使用包装类Integer score = null(包装类可以判断null值,初始值也为null,int初始值为0,无法区分null

  • hibernate主键生成策略


1.hibernate要求实体类里面有一个属性作为唯一值,对应表主键,主键可以不同生成策略

2.主键生成策略有很多值,只要记住以下两个值

(1)native:根据使用的数据库会选择哪个值
(2)uuid:之前web阶段需要写代码生成uuid值,hibernate会帮我们自动生成uuid值


3.演示生成uuid

(1)使用uuid生成策略,实体类id属性数据类型必须字符串类型
(2)配置部分写uuid值
    <generator class="uuid">                     </generator>

(3)结果:


  • 实体类的操作

1.添加操作
//添加功能User user = new User();user.setS_username("sq");user.setS_password("sq");//调用session里面的方法实现添加session.save(user);

2.根据id查询
(1)调用session里面的get方法实现
//4.根据id查询//调用session里面的get方法//第一个参数:实体类的class//第二个参数:id值User user = session.get(User.class, "4028802e5c8b835a015c8b835cd20000");System.out.println(user);

3.修改操作
(1)首先查询,再修改值
根据id查询,返回对象
//4.修改操作//4.1根据id查询User user = session.get(User.class, "4028802e5c8b835a015c8b835cd20000");//4.2向返回的对象里面设置修改之后的值user.setS_username("lucy");//4.3调用session的方法进行修改//执行过程:到user对象里面找到uid值,根据uid值进行修改session.update(user);

注意:update可以改成save方法,结果一样,但是违反里面规则,还有saveorupdate方法
4.删除操作
//4.删除操作//第一种根据id查询出对象(一般)//User user = session.get(User.class, "4028802e5c8b835a015c8b835cd20000");//session.delete(user);//第二种User user = new User();user.setS_uid("4028802e5c8b8845015c8b8848550000");session.delete(user);

  • 实体类对象状态(概念)

1.实体类的状态有三种
(1)瞬时态:对象里面没有id值,对象与session没有关联(添加对象时创建的没有id对象)
User user = new User();user.setS_username("sq");user.setS_password("sq");


(2)持久态:对象里面有id值,对象与session关联
User user = session.get(User.class, "4028802e5c8b835a015c8b835cd20000");


(3)托管态:对象里面有id值,对象与session没有关联(用的不多)
User user = new User();user.setS_uid("4028802e5c8b8845015c8b8848550000");

2.演示操作实体类对象的方法
(1)savOrUpdate方法:实现添加,实现修改操作
//4.SaveOrUpdate操作User user = new User();user.setS_username("张三");user.setS_password("111");//实体类对象是瞬时态时,做添加操作session.saveOrUpdate(user);
//4.SaveOrUpdate操作User user = new User();user.setS_uid("4028802e5c8bb437015c8bb43a350000");user.setS_username("老王");user.setS_password("333");//实体类对象是托管态时,做修改操作session.saveOrUpdate(user);
//4.SaveOrUpdate操作User user = session.get(User.class, "4028802e5c8b835a015c8b835cd20000");user.setS_username("lucy");//实体类是持久态,做修改操作session.saveOrUpdate(user);



原创粉丝点击