随笔分类 -  Hibernate

摘要:又从头学习了一遍hibernate的映射关系,每一次都会有新的收获,总是感觉自己还是不会hibernate。单从配置上说:知其然不知其所以然,马上就要找工作的人了,很是为自己担心呀!!众所周知,hibernate是一个杰出的O/RMapping(Object-RelationlMapping)框架,单从英文字面意思来解释:对象关系映射。在面向对象编程的过程中,我们往往先抽象出系统中涉及的实体对象,然后根据对象建立数据表,无疑后面对于数据库的操作是面向过程的。面向对象是简洁的,面向过程(操作数据库,写sql语句)是复杂的。Hibernate恰恰屏蔽了数据库操作这层,用户只需用面向对象的直观意.. 阅读全文
posted @ 2011-07-23 19:20 focusJ 阅读(1644) 评论(0) 推荐(0)
摘要:实体:package bi.many2many.jointable;import java.util.HashSet;import java.util.Set;public class Student { private int id; private String name; private Set<Teacher> teachers = new HashSet<Teacher>(); public Student() { } public Student(int id, String name, Set<Teacher> teachers) { supe 阅读全文
posted @ 2011-07-23 10:50 focusJ 阅读(466) 评论(0) 推荐(0)
摘要:实体:package bi.one2one.jointable;public class Husband { private int id; private String name; private Wife wife; public Husband() { } public Husband(int id, String name, Wife wife) { super(); this.id = id; this.name = name; this.wife = wife; } public int getId() { return id; } public void setId(i... 阅读全文
posted @ 2011-07-23 10:46 focusJ 阅读(337) 评论(0) 推荐(0)
摘要:实体:package bi.one2many.jointable;import java.util.HashSet;import java.util.Set;public class Emperor { private int id; private String name; private Set<Minister> ministers = new HashSet<Minister>(); public Emperor() { } public Emperor(int id, String name, Set<Minister> ministers) { 阅读全文
posted @ 2011-07-23 10:42 focusJ 阅读(462) 评论(1) 推荐(0)
摘要:实体:package bi.one2one;public class Husband { private int id; private String name; private Wife wife; public Husband() { } public Husband(int id, String name, Wife wife) { super(); this.id = id; this.name = name; this.wife = wife; } public int getId() { return id; } public void setId(int id) { ... 阅读全文
posted @ 2011-07-23 10:36 focusJ 阅读(417) 评论(0) 推荐(0)
摘要:实体:package bi.one2many;import java.util.HashSet;import java.util.Set;public class Emperor { private int id; private String name; private Set<Minister> ministers = new HashSet<Minister>(); public Emperor() { } public Emperor(int id, String name, Set<Minister> ministers) { super(); t 阅读全文
posted @ 2011-07-23 10:34 focusJ 阅读(542) 评论(0) 推荐(0)
摘要:实体:package uni.many2many.jointable;import java.util.HashSet;import java.util.Set;public class Student { private int id; private String name; private Set<Teacher> teachers = new HashSet<Teacher>(); public Student() { } public Student(int id, String name, Set<Teacher> teachers) { sup 阅读全文
posted @ 2011-07-23 10:22 focusJ 阅读(264) 评论(0) 推荐(0)
摘要:实体:package uni.one2one.jointable;public class Husband { private int id; private String name; private Wife wife; public Husband() { } public Husband(int id, String name, Wife wife) { super(); this.id = id; this.name = name; this.wife = wife; } public int getId() { return id; } public void setId(... 阅读全文
posted @ 2011-07-23 10:19 focusJ 阅读(198) 评论(0) 推荐(0)
摘要:实体:package uni.many2one.jointable;public class Parent { private int id; private String name; private Child child; public Parent() { } public Parent(int id, String name, Child child) { super(); this.id = id; this.name = name; this.child = child; } public int getId() { return id; } public void se... 阅读全文
posted @ 2011-07-23 10:17 focusJ 阅读(251) 评论(0) 推荐(0)
摘要:实体:package uni.one2many.jointable;import java.util.HashSet;import java.util.Set;public class Emperor { private int id; private String name; private Set<Minister> ministers = new HashSet<Minister>(); public Emperor() { } public Emperor(int id, String name, Set<Minister> ministers) { 阅读全文
posted @ 2011-07-23 10:16 focusJ 阅读(236) 评论(0) 推荐(0)
摘要:这里举了皇帝和大臣的例子,天子只有一个,而诸侯多的不胜计数。实体:package uni.one2many;import java.util.HashSet;import java.util.Set;public class Emperor { private int id; private String name; private Set<Minister> ministers = new HashSet<Minister>(); public Emperor() { } public Emperor(int id, String name, Set<Minis 阅读全文
posted @ 2011-07-23 10:13 focusJ 阅读(429) 评论(0) 推荐(0)
摘要:这里举了一夫一妻的例子。实体:package uni.one2one;public class Husband { private int id; private String name; private Wife wife; public Husband() { } public Husband(int id, String name, Wife wife) { super(); this.id = id; this.name = name; this.wife = wife; } public int getId() { return id; } public void se... 阅读全文
posted @ 2011-07-23 10:08 focusJ 阅读(460) 评论(0) 推荐(0)
摘要:在这里举了一个不太恰当的例子:双亲和孩子。当然举这个例子也有一定的道理,一个孩子至少有两个parent,但是例子只是例子,重点不是例子而是配置方法。下面我们看一下配置的详细步骤:实体:package uni.many2one;public class Child { private int id; private String name; public Child(int id, String name) { super(); this.id = id; this.name = name; } public Child() { } public int getId() { retur... 阅读全文
posted @ 2011-07-23 10:05 focusJ 阅读(487) 评论(0) 推荐(0)
摘要:暂且把废话放一边,代码上:/** * 上一条记录 * @param id * @return */ @Override public Object preBlog(String id) { final String fid = id; final String sql = "from Blog b where b.bid<? order by b.bid desc"; return this.getHibernateTemplate().execute(new HibernateCallback() { @Override public Object doInHibe 阅读全文
posted @ 2011-05-20 20:45 focusJ 阅读(1108) 评论(0) 推荐(0)
摘要:HQL实例:1.查询表中的所有记录:fromCategory2.带有where子句的条件查询:fromCategorycwherec.name>'c5'3.结果根据某一字段排序:fromCategorycorderbyc.namedesc(desc表示降序排列,asc表示升序排列)4.去除重复记录获得单一记录:selectdistinctcfromCategorycorderbyc.namedesc5.带有参数的查询:fromCategorycwherec.id>:minandc.id<:max。hql语句中’:min’表示的是参数,可以像jdbc中一样,为参 阅读全文
posted @ 2011-04-22 20:37 focusJ 阅读(1658) 评论(0) 推荐(0)
摘要:今天配置hibernate的二级缓存,道路是曲折的,但是最后还是配置成功!期间遇到了不少小问题,记录下来防止有像我这样的菜鸟兄弟在配置的时候不知所措!废话不说了说一下正确的步骤和重要的配置代码! 第一步,先引入jar包。ehcache-1.5.0.jar最关键的jar包了,因为他是二级缓存的主角吗!还有一个配角没了他你也会不好过,D:\WEB Document\JAR包\backport-util-concurrent-2.2.jar。 第二步,在hibernate的配置文件或spring的配置文件中填写下列代码(我这里使用的是spring的配置文件):<!-- 配置hibernate二 阅读全文
posted @ 2011-04-13 13:31 focusJ 阅读(1382) 评论(0) 推荐(0)
摘要:今天找到了一种新的方法来解决这个问题,hibernate的级联关系解决了不少麻烦事,但是这种情况下却添了麻烦。下面我说一下解决的思路:将有级联关系的类分离,具体分离为剥离了有映射关系属性的dto,和级联关系所映射的dto,然后将分离出来的dto放到map中,这样用json-lib工具转化的时候就不会有问题了!举一个例子role = this.roleService.searchRole(id); Role r = new Role(); r.setRname(role.getRname()); r.setRdescribe(r.get... 阅读全文
posted @ 2011-03-31 22:08 focusJ 阅读(3707) 评论(0) 推荐(1)
摘要:Inverse和cascade是Hibernate映射中最难掌握的两个属性。两者都在对象的关联操作中发挥作用。1.明确inverse和cascade的作用 inverse 决定是否把对对象中集合的改动反映到数据库中,所以inverse只对集合起作用,也就是只对one-to-many或many-to-many有效(因 为只有这两种关联关系包含集合,而one-to-one和many-to-one只含有关系对方的一个引用)。 cascade决定是否把对对象的改动反映到数据库中,所以cascade对所有的关联关系都起作用(因为关联关系就是指对象之间的关联关系)。2.inverse属性 :invers. 阅读全文
posted @ 2011-03-23 16:08 focusJ 阅读(633) 评论(0) 推荐(1)
摘要:伟大的信息管理与信息系统专业,万恶的信息管理与信息系统专业。说这句话我是有根据的:因为这个专业雄心勃勃的想把自己的子弟培养成全面发展的人才但是结果则不然。两方面的原因:一部分在学生,但是一部分在这个专业。让我极其郁闷的就是这个学期我们开设了《财政学》这门课程,天大的噩耗呀(对于我来说,说这种话不到有任何目的性)。索性这门课我立志就没有想学,在老师甜美的声音的陪伴下,我又熟悉了一遍hibernate,废话少说谈一下这一下午的收获吧。1. hibernate的unsaved-value属性 unsaved-value是关系到Hibernate对象save or update的配置属性,它的可选值有 阅读全文
posted @ 2011-03-01 18:57 focusJ 阅读(324) 评论(0) 推荐(0)
摘要:1.Clear方法 无论是Load还是Get都会首先查找缓存(一级缓存)如果没有,才会去数据库查找,调用Clear()方法,可以强制清除Session缓存。 例:public void testClear(){ Session session = HibernateUitl.getSessionFactory().getCurrentSession(); session.beginTransaction(); Teacher t = (Teacher) session.get(Teacher.class, 3); System.out.... 阅读全文
posted @ 2011-02-18 11:02 focusJ 阅读(1387) 评论(0) 推荐(0)