摘要: 该书内容的总结:1.数据库管理系统的目标。普通的CRUD操作,原子事务处理特性及事务处理的ACID(原子,一致,隔离,持久)。2.数据库设计过程: 用户的需求!-》问题清单? 数据需求-》用户界面模型 VS word界面?用例图和需求文档---》所有开发人员目的一致,避免吵架! 初期数据库设计-》word中的表?表名,字段名 类型 是否空 约束? 语义对象模型 VS 实体关系模型-》Viso VS powerDesigner? 语义对象模型或实体关系模型 转换为 关系模型-》viso VSpowerDesigner? (实体集-》表名,属性-》字段,在表中加外键链接) ... 阅读全文
posted @ 2014-03-12 21:44 FishBird 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 现在演示“多:多,双向导航”。由于实际项目中,首先进行数据库设计,所以,从数据库设计推出POJO的设计是很必要的. studentteacher 数据库表: 设计思路: 1.2个POJO类,Teacher对应于t_teacher表。Student对应于t_student表。 2.确定导航要求,为双向导航,使用ManyToMany,一端使用mappedBy。2端都是用cascadeType.ALL... 阅读全文
posted @ 2013-10-20 14:13 FishBird 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 对于“读”:hibernate的默认设置符合人们使用的习惯。如果要手动控制”读“,可以设置fetch属性。 如果导航起始对象为“多”,读取该对象,hibernate默认将导航终止对象也会读出来。 如果导航起始对象为“1"“,读取该对象,hibernate默认不会将导航终止对象读取出来。可以设置fetch=FetchType.EAGER,一旦是EAGER的,那么在get导航起始对象后,导航终点对象自... 阅读全文
posted @ 2013-10-16 20:35 FishBird 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 1.crud操作需要放在transaction中。 2.crud的操作对象是“java对象”。 3.crud操作之前,通过导航方向按照setXXX设置属性如果是双向导航,则Client端每个导航方向都有设置setXXXX。(双向导航还有一个规律:一方设置mappedBy。防止外键冗余)有2种方式设置: (1)对导航起始对象和终止对象都执行crud。(多用,一般先操作导航终点对象) (2)通过设置导... 阅读全文
posted @ 2013-10-16 20:13 FishBird 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 1.数据库中,使用中间表完成多:多关联。 2.类图中,单向导航,在”导航“类中使用@ManyToMany即可。 3.双向导航:分别在导航类中使用@ManyToMany,并选择其中一个使用(mappedBy)或@Transient 单向例子:student和teacher。 需求:student可以找到教他的所有老师。而老师不必找到他教的学生。 Student.java @Entity@Table(... 阅读全文
posted @ 2013-10-15 00:02 FishBird 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 1.数据库表的映射方式: 在多的一方加外键。 2.类图中字段: 多重性为:1:多 方向性为: 单向导航:“1”这个对象能够找到“多“的对象。所以,在”1“的对象中设置一个属性为集合类型的”多“的对象,在1这类中标明@OneToMany,还要加@joinColumn(name=”groupid”)否则会生成3张表。也可以由”多“一方对象找到”1“一方对象,则包含一个对象即可,在多这个类中标明@Man... 阅读全文
posted @ 2013-10-14 23:03 FishBird 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 1.通常使用@Id,@IdClass配置注解联合主键。 2.联合主键必须设置主键类。该类必须实现Serializable接口 3.联合主键的映射: 默认:OneToOne:自动为将sql语句的fk对应的设置为主键类中的主键,名称使用默认的。 使用@JoinColumns({。。})来说明fk各个列名。 @OneToOne /*@JoinColumns({ @JoinC... 阅读全文
posted @ 2013-10-09 22:19 FishBird 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 1.类图中,需要双向导航,意味着Husband可以找到Wife,Wife可以找到Husband。 2.数据库表设计中,无论是查询那个表的信息,都只需要一个外键就可以通过sql搞定。 所以,映射的时候,在Wife类中必须是要增加Husband属性以及getter和setter。如果标记这个“组件”呢? 通过以上的分析,wife表中并不需要husband这个列,因为husband表已经包含了wifeI... 阅读全文
posted @ 2013-10-09 21:50 FishBird 阅读(143) 评论(0) 推荐(0) 编辑
摘要: husband与wife 类图:(对象之间的对应) 一个husband对应一个wife,故wife的多重性为1; 一个wife对应一个husband,故husband多重性为1; 现在确定导航性为:Husband可以找到Wife。则在husband类中,包含一个Wife对象即可。 POJO为:Husband.java: @Entitypublic class Husband { priva... 阅读全文
posted @ 2013-09-27 23:27 FishBird 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 实体Bean的三种状态如下图:判断依据1.bean有无ID2.Session缓存有无bean的ID和Bean的引用组成的map。3.数据库有无Bean。状态转换Teacher t = new Teacher();t.setName("ddd");//t是transient(t没有或有id,session缓存没有t,数据库没有t)session.save(t);//t是persistent(t有id,session缓存有t,数据库有t)session.close()://t是detached(t有id,session缓存没有t,数据库有t) 阅读全文
posted @ 2013-09-24 13:52 FishBird 阅读(319) 评论(0) 推荐(0) 编辑