Hibernate笔记(全).doc
文本预览下载声明
Hibernate 休眠冬眠
作用:用来简化数据库访问(增删改查)
它是一种ORM框架
Object relationship mapping
Java对象 关系(型DB) 映射(java对象和数据之间的对应关系)
实体类(需要默认的构造方法,不能加final)--表
属性--列
一个对象--一行数据
hibernate 使用步骤:
1.添加jar:
中文文档的 位置:
Javadoc文档的 位置:
Jar 包 目录:
Ojdbc.jar
Project 源码:
配置文件:
src\hibernate.cfg.xml
连接数据库:
数据库类型:
映射关系文件的所在位置:
建立数据库表和实体类之间的映射关系:
实体类中建立
映射文件:mapping(***)
*.hbm.xml
用api进行增删改查
Connection
PreparedStatement
ResultSet
类 :Configuration 对应 hibernate.hbm.xml
接口:SessionFactory:创建Session对象
接口:Session(是hibernate提供的用来执行增删改查)
.save(实体对象) 增加
Configuration cfg = new Configuration().configure();// 1. 获得配置对象,代表hibernate.cfg.xml
SessionFactory sf = cfg.buildSessionFactory();// 2. 创建session工厂
Session session = sf.openSession(); // 3. 创建session对象// 打开新的session
session.beginTransaction();// 4. 增删改需要事务控制 Transaction .commit() .rollback() // 事务开始
Student st=new Student();
st.setName(“z行三”);
st.setAge(12);
st.setBirthday(“1988-02-11”);
st.setScore(100);
Session.save(Student);
session.getTmit();
Session.close();
.update(实体对象) 修改 :将所有属性都赋值
1
2
.delete(实体对象) 删除
1
2
.get(实体类名.class,id); 根据id进行查询
Configuration cf=new Configuration().configure();
SessionFaction sf=cf.buildSessionFactory();
Session session=sf.openSession();
Update table set column=?;
查询多条记录:
SQL() 面向的是表 条件比较时用列名
使用HQL(hibernate 查询语言) 面向的是对象,条件比较时使用属性名
From User 查询所有用户的对象
From User where username=? 用户名属性进行查询
Query query=session.createQuery(hql);//创建一个查询对象
List查询的实体类型 list=query.list() //执行查询
HQL:语句:
Hql:from User where username=?;
query.setString(0,username);//下标从0开始;不会有hql注入攻击问题
Hql中也有支持?占位符的,好处可以避免注入攻击,下标从0开始
hibernate改写dao.service
主键生成器
1.Assigned:主键值由自己赋值
当用户名作为主键时
2.Increment:找到原有数据中主键最大值+1,作为新的主键值
不能用于并发插入,容易产生主键冲突的错误
3.Sequence:generator class=”sequence”/ 会使用一个名为hibernate_sequence;
id name=did
generator class=sequence
param name=sequence序列名/param
/generator
/id
Create sequence sequence_seq start with 10;
Hibernate.cfg.xml配置:
!-- 显示hibernate 底层sql时 --
property name=hibernate.show_sqltrue/
显示全部