1、单一主键
assigned(由java程序生成标识符)
native(由数据库自动生成标识符,例如MySQL就是increment、Oracle就是sequence)
2、基本类型
hibernate映射类型 java类型 sql类型 大小
integer/int java.lang.Integer/int INTEGER 4 btye
long java.lang.Long BIGENT 8
short java.lang.Short SMALLINT 2
float java.lang.Float FLOAT 4
double java.lang.Double DOUBLE 8
byte java.lang.Byte TINYINT 1
character java.lang.Character/char/String CHAR(1) 定长字符
string java.lang.String VARCHAR() 变长字符
boolean java.lang.Boolean BIT 布尔类型
date java.util.Date/java.sql.Date DATE 日期-->>>>>>yyyy-MM-dd
time java.util.Date/Time TIME 日期-->>>>>hh:mm:ss
timestamp java.util.Date/Timestamp TIMESTAMP 日期-->>>>yyyy-MM-dd hh:mm:ss
3、对象类型
binary btye[] VARCHAR()
text java.lang.String CLOB
clob(大文本类型) java.sql.Clob CLOB
blob(二进制数据类型)java.sql.Blob BLOB
mysql中没有CLOB而是TEXT、LONGTEXT、SHORTTEXT表示数据超过255的文本
4、组件属性
实体类中某个属性是用户自定义的属性(例如:(邮编、电话号)封装成的地址类)
映射属性时应该这样写
<component name="属性" class="类">
<property name="属性" column="字段"></property>
<property name="属性" column="字段"></property>
<component>
5、单表操作CURD实例
保存:save()
删除:delete()
修改:update()
查询单个:get()/load()
get和load的区别:
get方法后会直接发出sql语句返回持久化的对象
load方法会调用之后返回一个代理对象,即是实体对象的id,直到调用对象的非主键属性时才会发出sql语句
如果对象不存在,get方法返回null,load方法抛出异常ObjectNotFoundException