guokehua(@yahoo.com.cn oy Java 18 Hibernate其他问题 2008-3-10 郭克华EE框架实战教学视频
2008-3-10 1 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 18Hibernate Hibernate其他问题
guokehua(@yahoo.com.cn oy Java! 在DE内导入数据库 选择 Hibernate设计窗口 导入数据库驱动 1010 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 2 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 在IDE内导入数据库 • 选择Hibernate Hibernate设计窗口 • 导入数据库驱动 导入数据库驱动
guokehua(@yahoo.com.cn 了y复合主键的情况 如果在表中有两个列合起来当主键怎么 处理? ·1:编写一个类(实现序列化接口),封装 主键,并写属性 d·2:Po内编写各个属性,包括主键类型 3:在映射文件中写明: < composite- id name=属性名c1ass=N主键类名"> <key- property name=属性名〃co1umn=列名"/> <key- property name="属性名"co1um="列名”/> </composite-id> 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 3 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 复合主键的情况 复合主键的情况 • 如果在表中有两个列合起来当主键怎么 如果在表中有两个列合起来当主键怎么 处理? • 1:编写一个类(实现序列化接口 实现序列化接口),封装 主键,并写属性 主键,并写属性 • 2:PO内编写各个属性,包括主键类型 内编写各个属性,包括主键类型 • 3:在映射文件中写明 在映射文件中写明: <composite composite-id name=“属性名” class=“主键类名"> <key-property property name=“属性名” column=“列名"/> <key-property property name="属性名" column="列名" /> </composite composite-id>
guokehua(@yahoo.com.cn 主键生成策略 generator - Generator:主键生成器,每个主键都必须定义 相应的主键生成策略。它用来为持久化类实例生成 1010 唯一的标识。 Hibernate内置的主键生成策略 assigned:由用户手工给一个值(例如账号由用户决定) increment:不用手工给值,由系统自动递增(注意:这 些只是 Hibernate的策略)(账号由系统返回) > identity:由数据库生成主键 sequence:由数据库根据序列生成主键 hilo:根据 Hibernate特殊算法生成主键 > native:系统自动选择 identity, sequence, hilo uuid.hex: hibernate利用uuid算法生成主键 008-3-10 郭克华J2E框架实战教学视频
2008-3-10 4 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 主键生成策略generator generator ¾ Generator Generator:主键生成器,每个主键都必须定义 主键生成器,每个主键都必须定义 相应的主键生成策略。它用来为持久化类实例生成 相应的主键生成策略。它用来为持久化类实例生成 唯一的标识。 ¾ Hibernate Hibernate内置的主键生成策略 内置的主键生成策略 ¾ assigned: assigned:由用户手工给一个值(例如账号由用户决定) ¾ increment: increment:不用手工给值,由系统自动递增(注意:这 些只是Hibernate Hibernate的策略)(账号由系统返回) ¾ identity: identity:由数据库生成主键 ¾ sequence: sequence:由数据库根据序列生成主键 ¾ hilo:根据Hibernate Hibernate特殊算法生成主键 ¾ native: native:系统自动选择identity identity, sequence sequence, hilo ¾ uuid.hex: hibernate .hex: hibernate利用uuid算法生成主键
guokehua(@yahoo.com.cn 主键生成策略 generator 案例:按照 increment来生成主键 1:在数据库内定义一个整型主键 1010 ≯2:定义一个整型属性指向这个主键 3:为主键设置生成策略为 increment ≯4:添加时,无需指定主键 1-餐向题:数据库表里面可不可以没有主键? 可以 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 5 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 主键生成策略generator generator ¾ 案例:按照increment increment来生成主键 ¾ 1:在数据库内定义一个整型主键 在数据库内定义一个整型主键 ¾ 2:定义一个整型属性指向这个主键 定义一个整型属性指向这个主键 ¾ 3:为主键设置生成策略为 为主键设置生成策略为increment increment ¾ 4:添加时,无需指定主键 添加时,无需指定主键 ¾ 怪问题:数据库表里面可不可以没有主键 数据库表里面可不可以没有主键? 可以