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:在映射文件中写明: 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 3 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 复合主键的情况 复合主键的情况 • 如果在表中有两个列合起来当主键怎么 如果在表中有两个列合起来当主键怎么 处理? • 1:编写一个类(实现序列化接口 实现序列化接口),封装 主键,并写属性 主键,并写属性 • 2:PO内编写各个属性,包括主键类型 内编写各个属性,包括主键类型 • 3:在映射文件中写明 在映射文件中写明:
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:添加时,无需指定主键 添加时,无需指定主键 ¾ 怪问题:数据库表里面可不可以没有主键 数据库表里面可不可以没有主键? 可以
guokehua(@yahoo.com.cn oy Java! 动态模型 是否可以不定义 Javabean? >方法:使用动态实体模型 (1)在 class标签中设置一个属性: entity-name=N实体名 称〃并指明对应的表名 (2)在每个 oroperty标签中,给定一个type属性,指定该 列对应的类型名称 怎样访问?对象存在方式 cHashMa Object get (String entityName, Serializable id) Object load(string entityName, Serializable id) Serializable save(string entityName, Object object) void saveOrUpdate(String entityName, Object object) void update(String entityName, Object object) 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 6 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 动态模型 ¾ 是否可以不定义JavaBean JavaBean? ¾ 方法:使用动态实体模型 ¾ (1)在class标签中设置一个属性:entity-name=“实体名 称” 并指明对应的表名 ¾ (2)在每个property property标签中,给定一个type属性,指定该 列对应的类型名称 ¾ 怎样访问?对象存在方式:HashMap HashMap ¾ Object get(String Object get(String entityName entityName, Serializable Serializable id) ¾ Object load(String Object load(String entityName entityName, Serializable Serializable id) ¾ Serializable Serializable save(String save(String entityName entityName, Object , Object object) object) ¾ void saveOrUpdate saveOrUpdate(String (String entityName entityName, Object , Object object) object) ¾ void update(String void update(String entityName entityName, Object object) , Object object)
guokehua(@yahoo.com.cn oy Java! 在DE内导入数据库 选择 Hibernate设计窗口 导入数据库驱动 1010 自动生成 Hibernate配置文件 自动生成DAo 008-3-10 郭克华J2EE框架实战教学视频
2008-3-10 7 oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 在IDE内导入数据库 • 选择Hibernate Hibernate设计窗口 • 导入数据库驱动 导入数据库驱动 • 自动生成Hibernate Hibernate配置文件 • 自动生成DAO