实体类与表名一一对应,类中的属性与表中的列名(column)一一对应,中类名.hbm.xml中配置;
编写规则
(1)实体类中的属性都是private私有的;
(2)私有属性的setter和getter方法都是共有的public;
(3)要求实体类必须要有一个属性作为唯一值(需要与表中的主键primary key对应);
(4)实体类属性建议不使用基本数据类型,而是使用基本数据类型所对应的包装类;
int--Integer, byte--Byte short--Short, long--Long,
double--Double, float--Float boolean--Boolean, char--Character,
原因:比如使用int score的时候,则没有数据(null)和得分为0就无法区分;或者说无法为它赋值为null表示没有分数。
Hibernate主键生成策略
hibernate要求实体类里面必须有一属性作为唯一值,对应表主键,有不同的生成策略;
在实体类包中的非核心配置文件.hbm.xml中配置
<id name="uid" column="uid">
<!-- 设置数据库表id的生成策略generator
主要是两种:
1、native:可根据sql数据库类型来自动选择identity或者sequence或者hilo方式
2、uuid:hibernate采用128位的uuid算法生成的标识符
-->
<generator class="native"></generator>
</id>
主要是两种:
1、native:可根据sql数据库类型来自动选择identity或者sequence或者hilo方式
2、uuid(属性类型应该设置为String):hibernate采用128位的uuid算法生成的标识符
实体类操作:
进行crud操作(create, read, update, delete)
查询操作 根据id查询,调用session中的get方法实现
//session
//第一个参数:实体类的参数
//第二个参数:id值
User user = session.get(User.class, 3);
修改操作 先查询,后修改
(1)使用session类的get()方法获得对象;
(2)对该对象使用setter方法进行修改;
(3)使用session类的update()方法,更新相关的对象。
//修改操作
//先查后改
User user = session.get(User.class, 2);
//向返回的user对象里设置修改之后的值
user.setUsername("black");
//使用update方法进行修改
session.update(user);
删除操作 先查询,后删除
(1)使用session类的get()方法获得对象;
(2)使用session类的delete()方法删除。
User user = session.get(User.class, 2);
session.delete(user);
另外一种方法:不建议使用
User user = new User();
user.setUid(2);
session.delete(user);