hibernate基础资料

为工程添加数据源:
window-- show biew-- db browser-- oracle
name:名字
url:数据连接
username:用户
password:密码
add:oralcejar包
save password:选中
-----下一步 可选
------
创建配置连接文件:
右键项目--myeclipse--addhibernate
----1.选中hibernate3 
    2.默认
    3.选第二项
----new -----db driver:选中自己需要的
------是否创建类
自动添加实体类
右击db browser中创建的数据源 ------选中table中的所要自动创建类的表-
----倒数第4个-

---------笔记------------------------
hibernate:开源的实现持久化的框架,是一个持久化的解决方案,对JDBC进行封装
框架:可复用的组件
持久化:将数据存储到一定的介质中

ORM:对象-关系映射

hibernate实体对象的三种状态:
瞬态:当程序退出后,数据就不存在了
持久态:存储到介质中
游离态:对象不由session管理的时候

使用hibernate执行增删改的操作,需要使用事物(连接、事物等等打开关闭的东西,越晚打开越好越早关闭越好)

使用session的get和load区别
使用get获得对象,如果没用,返回null,
使用load方法获得对象,如果不存在报异常

1、导入hibernate支持的jar
hibernate3.jar、lib/requried目录下的所有jar
2、添加JDBC驱动jar
oracle6.jar
3.编写hibernate.cfg.xml文件
4.编写实体类及映射文件
5.操作hibernate(此时可能出现一个异常,slf4....Logger,需要添加slf4j-nop-1.5.2.jar)

主键生成策略:
uuid.hex:128算法,字符串
sequence:oracle
increment:自动增长(long,int,short)
identity:应用于数据库中带有自动增长功能的(sql servler\mysql\db2)
native:由hibernate判断使用什么方式生成主键
assigneg:主键由应用程序负责,hibernate不参与

hibernate七大步:
//1、加载并解析hibernate配置
Configuration cfg=new Configuration().configure();
//2、构建SessionFactory
SessionFactory sf=cfg.buildSessionFactory();
//3、获得Session 打开Session
Session session=sf.openSession();
//4、事务
Transaction ts=session.beginTransaction();
//5、操作
session.delete(s);
//6、提交事务(回滚事务)
ts.commit();
*/
//7、关闭
session.close();
=============================================================
关联映射:

单向一对多关联关系:=========================
(Classs---Student)
一方:实体类:创建一个多的集合(Set)
     映射文件:配置<set name="实体类中的Set的名字" table="关联的表">
  <key column="关联表中的字段"></key>
  <one-to-many class="关联表对应的实体类"/>
 </set>
查询:把对应的多的集合查询出来
添加:使用集合添加

单向多对一关联关系:===========================
(student --- calsss)
多方:
实体类:声明关联类型对象
映射文件:
<many-to-one name="对象名" class="关联的实体类" column="对应的列"></many-to=one>
查询:查询Student实体,同事将classs查询出来
添加:学生对象中,添加班级实体

双向一对多关联关系:====================================


映射文件中的两个属性:cascade(级联) inverse(反转)

cascade:
none:对所有的操作都不关联
all:所有操作都关联
save-update:添加和更新的时候进行关联
delete:删除的时候进行关联

inverse:控制反转
true:由对象来负责管理关联关系
false:该方为主动方,由主动方管理关联关系
--------------------------
lazy 延迟加载:
true:延迟加载
false:不延迟加载
proxy:默认
多对多关联关系:=========================================
两端都配置set
要获得两张表的数据  需要用到创建第三张表


hibernate 查询(HQL--hibernate query language|QBC)
HQL:
带参数:
1.拼接hql语句
2.使用?占位,设置从0开始
3.设置参数名:参数名,设置时,:name   query.setString("name","值");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值