hibernate第二天
来源:互联网 发布:淘宝百信大药房旗舰店 编辑:程序博客网 时间:2024/05/31 13:16
hibernate编写:
1 导入jar包:
hibernate3.jar
commons-logging.jar
commons-collection.jar
dom4j.jar
log4j.jar
ehcache.jar
antlr.jar
cglib.jar
2 创建sql脚本,以及表对应的实体类
3 编写src/hibernate.cfg.xml
数据库连接信息
connection.url
connection.driverClass
connection.username
connection.password
数据库方言
dialect
映射文件路径
<mapping resource="/">
额外属性配置
show_sql=true
4 编写具体的映射文件信息
<class name="" table="">
<id name="" column="">
</id>
<property name="" column=""/>
</class>
5 编写具体操作类
//创建配置类对象,其configure方法,是读取src/hibernate.cfg.xml文件的内容
Configuration cfg = new Configuration().configure();
//由配置类对象,封装配置文件中的核心配置信息为SessionFactory
SessionFactory sf = cfg.buildSessionFactory();
//由工厂获取session产品,session为了维护一系列业务相关操作
Session session = sf.openSession();
//创建当前事务对象,为了事务的原子性
Transaction tx = session.beginTransaction();
//通过session对象,持久化操作
session.***();
//控制事务的提交
tx.commit();
session的方法:
save(Object o) --临时对象《内存信息-存入-》DB》
要求o对象没有主键。
update(Obejct o) --持久化对象《内存信息-更新-》DB》
要求o对象必须包含主键值(必须数据库中存在的)
同时o对象的其他属性,如果需要修改的,则为新值
不需要修改的,则必须和数据库的原有字段值一样
delete(Object o) --持久化对象《内存信息-删除-》DB》
要求对象必须包含主键值(必须数据库中存在的)
其他属性,可指定也可不指定
createQuery(String hql)
查询所有:from 类名
查询某几条信息: from 类名 where 属性名=值
hibernate id生成策略:
1 assigned
要求程序员在save方法调用之前,手动对需要持久化的对象赋主键值
<id name="pid" column="pid">
<generator class="assigned"></generator>
</id>
《===》
<id name="pid" column="pid">
</id>
一对一主键共享:
1 实体类必须是双向关联
public class Boss{
private Company c;
}
public class Company{
private Boss b;
}
2 映射文件中也必须是双向关联
<class name="Boss">
...
<one-to-one name="c" cascade="all">
</class>
<class name="company">
...
<one-to-one name="b">
</class>
3 在测试类中传递参数时,必须也建立双向关联
public class test{
void testAdd(){
Boss b = new Boss();
Comapany c = new Company(...);
b.setCompany(c);
c.setBoss(b);
....
}
}
select boss0_.bid as bid2_, boss0_.bossName as bossName0_2_, boss0_.birthday as birthday0_2_, company1_.cid as cid0_, company1_.cname as cname1_0_, company1_.caddress as caddress1_0_, boss2_.bid as bid1_, boss2_.bossName as bossName0_1_, boss2_.birthday as birthday0_1_ from boss_pk boss0_ left outer join company_pk company1_ on boss0_.bid=company1_.cid left outer join boss_pk boss2_ on company1_.cid=boss2_.bid where boss0_.bid=?
- hibernate学习 第二天
- hibernate第二天
- Hibernate第二天
- Hibernate第二天
- Hibernate框架第二天
- ## Hibernate框架第二天 ##
- hibernate第二天
- Hibernate学习第二天
- Hibernate第二天
- hibernate 学习第二天
- spring+hibernate学习的第二天
- hibernate学习ing(第二天)
- hibernate的IDE开发(第二天)
- hibernate学习笔记第二天(1)
- hibernate学习笔记第二天(2)
- hibernate学习笔记第二天(3)
- hibernate学习笔记第二天(4)
- Hibernate学习笔记(第二天)
- JAVA开发者最常去的20个英文网站
- 国际化你的应用程序
- 喜欢直接,拒绝暧昧
- 网址
- hibernate第一天
- hibernate第二天
- On Living Quality influnced by technology
- hibernate第三天
- hibernate第四天
- hibernate第五天
- zz DM9000移植到S3C2410 +linux2.6 一例
- hibernate第六天
- DataList精髓
- UML的相关概念(一)