Hibernate-02
2018-10-29 15:32:12来源:博客园 阅读 ()
一、hibernate实体创建规则
1、hibernate---->持久层ORM 映射框架,专注于数据的持久化工作。
2、持久化类创建规则
--->1、提供无参数的构造方法
2、私有化、对石油的属性提供get、set方法
3、尽力提供包装类的类型
4、持久化类需要提供oid.与数据库中的主键列对应
5、hibernate使用cglib代理生成代理对象.代理对象是继承被代理对象.如果被final修饰.将无法生成代理.
3、主键类型
1、自然主键:把含有业务含义的字段作为主键(非空,不能重复、不可修改)
2、代理主键:不具备业务含义的字段作为主键
4 主键策略
1、identity : 主键自增.由数据库来维护主键值.录入时不需要指定主键.
--->native:hilo+sequence+identity 自动三选一策略.
--->sequence: Oracle中的主键生成策略.
2、assigned:自然主键生成策略. hibernate不会管理主键值.由开发人员自己录入.
二、hibernate对象状态
三、hibernate 事务
1、特性
a :原子性
c :一致性
i :隔离性
d: 持久性
2、事务并发问题
脏读、不可重复读、幻读|虚读
3、事务隔离级别
注意:数据库使用时,隔离级别越高,安全性越高,性能就越低。
建议:READ_COMMITTED ----->oracle(默认)
REPEATABLE_EAD ----->mysql(默认)
四、hibernate 一级缓存
1、目的:
缓存:提高效率.hibernate中的一级缓存也是为了提高操作数据库的效率.
2、方案一
3、方案二
五、查询
HQL查询:
1、Hibernate独家查询语言,属于面向对象的查询语言
2、简单查询
String hql = "from cn.xxx.xxx.User";
//String hql = "from User";
Query query = session.createQuery(hql);//传入hql
List<Customer> Lists = query.list(); //接收list返回结果
接收唯一查询结果-----》 query.uniquerResult();
3、条件查询
占位符 ? or :属性名 :
1--> String hql1 = "from User where id = ?";
Query query = session.createQuery(hql1);
query.setParameter(0,2);//设置参数
User c = (User)query.uniqueResult();//获取结果
2--> String hql2 = "from User where id=:id";
Qusery query = session.createQuery(hql2);
query.setParameter(0,1);
User c = (User)query.uniqueResult();
4、分页查询
1 -->SetFirstResult(1); 起始位
-->setMaxResults(2); 可以理解为最大步长
2---->基本和上面步骤一致为query 设置这两个属性就行啦
Criteria:
1、Hibernate独家的无语句面向对象查询(建议不要使用sql的查询相关的信息 )
2、
1--->简单
Critera critera = session.createCriteria(User.class);创建查询语句
List<User> list = critera.list();//获取对象
2--->条件
在条件查询中可以使用的Restriction的方法
Criteria critera = session.createCriteria(User.class);
critera.add(Restriction.eq("id",1l));//查询id为1
User c = (User)criteria.uniqueResult();
3--->分页 :分页同样也是调用hql中的那两个方法名
4--->查询总数:采用这个方法setProjection
criteria.setProjection(Projections.rowCuount());
原生查询:就是使用原生的sql查询,建议在复杂查询的时候使用他不建议使用hql 和 Criteria
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:mybatis自学笔记-1
- Java框架之Hibernate实战篇 2020-06-09
- DDD之3实体和值对象 2020-06-04
- Hibernate --主键生成策略 2020-05-24
- JSP+Spring+SpringMVC+Hibernate+Mysql实现的校园失物招领网 2020-05-06
- Hibernate框架搭建 --- 入门学习 2020-04-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash