hibernate第五天
来源:互联网 发布:淘宝百信大药房旗舰店 编辑:程序博客网 时间:2024/05/21 19:27
id生成策略:
oracle:
sequence
increment
hilo
seqhilo
uuid.hex
native
assigned
foreign
mysql:
identity
increment
hilo
uuid.hex
native
assigned
foreign
hql:
【select 类别名】from 类名 类别名;
from 类名 类别名 inner join|left outer join 类别名.关系属性名;
--->Query.list():List ls
集合中存储的是封装好的类对象
select 类别名.属性名... from 类名 类别名;
--->Query.list():List ls
集合中存储的是多个Object[],每个数组代表一行记录
select new 新类名(类别名.属性名...) from 类名 类别名;
--->新类需要手动创建,并且指定类路径
session.get()
<set fetch="" outer-join="" lazy="">
hibernate集合操作:
*set
list
map
composite
idbag
unsaved-value:
session.save(Object o);
直接insert ....
session.update(Object o)
o必须有主键
session.saveOrUpdate(Object o)
如果o有主键,则update
没有主键,则save()
int pid = 0;
Person p = new Person("aa",Date.valueOf(""));
unsaved-value = null;
Integer pid = null;
要求:
实体类主键属性吗,使用封装类型
unsaved-value="null"
hibernate针对继承关系的实现:
1 hierarchy
2 concrete
3 perclass
Payment(账单:主键、金额、描述)
|
CardPayment(信用卡账单:持卡人、银行) CashPayment(现金账单:币种)
表设计方案:
1 一张表存储所有的信息
主键、金额、描述
持卡人、卡号
币种
账单类型标识符:cardType
优点:
操作简单,效率较高
缺点:
冗余较多,浪费空间
2 两张表
信用卡账单表 现金账单表
主键、金额、描述 主键、金额、描述
持卡人、卡号 币种
优点:
操作简单,效率较高
缺点:
冗余较多、丧失了多态的优势
3 三张表
账单表 信用卡账单表 现金账单表
主键、金额、描述 持卡人、卡号 币种
优点:
没有冗余,标准多态,节省空间
缺点:
操作复杂,效率较低
hibernate对于查询操作的支持:
1 native SQL
session.createSQLQuery(String sql)
Query.list()集合存的是数组
2 HQL
session.createQuery(String hql)
在sql基础之上,针对类、属性操作
select *** from *** where *** group by *** having *** order by ***;
3 Criteria 标准面向对象查询,不出现sql语句
session.createCriteria(***)
4 NamedQuery
session.getNamedQuery(String name)
- hibernate第五天
- Hibernate第五天
- Hibernate框架基础知识第五天
- 第五天
- 第五天
- 第五天
- 第五天
- 第五天
- 第五天
- 第五天
- 第五天
- 第五天
- 第五天
- 第五天
- 第五天
- 第五天
- 第五天
- 第五天
- hibernate第一天
- hibernate第二天
- On Living Quality influnced by technology
- hibernate第三天
- hibernate第四天
- hibernate第五天
- zz DM9000移植到S3C2410 +linux2.6 一例
- hibernate第六天
- DataList精髓
- UML的相关概念(一)
- Asp.Net常用的三十三种代码
- 2010-4-11
- 电脑死机大全
- 无法停止“通用卷”设备的解决方法