Hibernate学习笔记2
Hibernate映射 一对多 ?多对一 ?一对一 ?多对多 一对多映射 set元素的常用属性 <div class="cnblogs_code" onclick="cnblogs_code_show('e5fe68f0-0429-49e1-ba01-eb15b46a1b6e')"> <span style="color: #0000ff;">import<span style="color: #000000;"> org.hibernate.Session; 单向一对多: 班级(Grade)——>学生(Student) 班级类中有属性 set 在班级中配置 <span style="color: #0000ff;">import<span style="color: #000000;"> java.util.Set;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.hibernate.Session; <span style="color: #0000ff;">import<span style="color: #000000;"> com.imooc.util.HibernateUtil; <span style="color: #008000;">/**<span style="color: #008000;">
} 单向多对一关联: 1、多对一的关系和关系数据库中的外键参照关系最匹配,即在己方(多方)的表中的一个外键参照另一个表的主键; 2、通过在多方持有一方的引用实现,需要在“多”的一端使用 = Grade("一班","Java软件开发一班"= Student("张三","男"= Student("李四","女"
s1.setGrade(g);
s2.setGrade(g);
Session session </span>=<span style="color: #000000;"> HibernateUtil.getSession();
Transaction tx </span>=<span style="color: #000000;"> session.beginTransaction();
session.save(g);
session.save(s1);
session.save(s2);
tx.commit();
HibernateUtil.closeSession(session);
} 对于inverse属性的说明: 1、一方的hbm.xml文件的 2、关联关系中,inverse="false"则为主动方,由主动方负责维护关联关系; 3、在一对多关联中,设置one方的inverse为true,这将有助于性能的改善。 ?cascade属性 《》 HQL (Hibernate Query Lanaguage) Hibernate查询语言 HQL是面向对象的查询语言 HQL语句形式:select...from...where...group by...having...order by... HQL 对Java类的属性大小写敏感,对关键字大小写不敏感 1.from查询一个对象的所有字段(Seller是一个实体类) String hql = "from Seller"=
2.查询指定多个字段,返回的是Object[] String hql = "select id,name from Seller"=
3.只查询一个字段,返回的是Object String hql = "select name from Seller"=
4.查询时可以使用别名,这样查询多个表的时候,可以防止属性名冲突,这里s作为Seller的别名 String hql = "select s.name from Seller s"=
5.list返回查询结果 通过new list() String hql = "select new list(id,name) from Seller"=
6.以map形式返回查询结果 String hql = "select new map(id,name) from Seller"=
通过属性的别名获取,注意,如果使用别名就不可以使用下标获取了 String hql = "select new map(id as id_,name as name_) from Seller"=
7.以自定义类型返回查询结果
String hql = "select new Seller(id,name) from Seller"=
Seller Long id;
String name;
String tel;
...
} 8.返回不重复的查询结果 通过distinct关键字 String hql = "select distinct sex from Customer";
条件查询 9.通过比较运算符 =,<,>,<=,>=,<> ?? 10.判断是否为null is null 或者 =null 判断为空 is not null 或者 <>null 判断不为空 ?? 11.范围查询 in(a,b,...) 查询值为括号中的某个值的元素 ()中可以是子查询 between a and b 查询值在[a,b]之间的元素 String hql = "from Customer where age in (20,40)"= "from Customer where age not in (20,40)"= "from Customer where age between 30 and 40"= "from Customer where age not between 30 and 40";
12.字符串模式匹配 通过like 关键字 通配符:% 匹配任意个字符,_ 匹配一个字符 例:查询名字两个字且姓李的人 String hql = "from Customer where name like '李_' ";
13.逻辑运算 and or 同sql…… 14.集合运算 is [not] empty,集合【不】为空,不包含任何元素;对应SQL的exists运算 member of 元素属于集合 ;对应SQL的in运算。 15.四则运算 可以做select子句或者where子句中使用 例:? 3000? 16.单个查询 ??如果返回多个查询结果则报错 17.order by子句 对查询结果进行排序 select ... from ... where ... order by ... asc(desc) 默认asc 按多个属性排序,用逗号隔开 总结:和sql好像哦~ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |