hibernate4
文章平均质量分 58
Thinking_in_小虫
对代码不满足,是任何真正有天才的程序员的根本特征。
展开
-
Hibernate查询语言HQL
HQL:hibernate query language 即hibernate查询语言 hql是完全面向对象的查询语言,可以理解继承,多态,关联等概念 hql区分大小写。但是对应sql关键字(select,from where)不区分一:基本查询(1)单属性查询//查询所有书名 //创建Query对象 Session session = HibernateUt原创 2017-09-03 16:51:06 · 338 阅读 · 0 评论 -
Hibernate使用注解
基本注解//entity表示需要实体化的实体类@Entity //实体类所对应的表@Table(name="t_book")public class Book { //主键 @Id //主键生成策略,auto相当于native @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="boo原创 2017-09-03 16:09:24 · 444 阅读 · 0 评论 -
Hibernate基于List和map集合映射
之前我们用的都是set集合,这是无序的,如果用了有序如List就要在多的一端来产生一列用来表示顺序,但是在类中我们没必要写出这个属性,类似于oracle的rownum。举例如下(多对一的时候,学生和年级)student类public class Student { private int id; private String name; private int age;原创 2017-09-02 16:09:31 · 340 阅读 · 0 评论 -
Hibernate基于主键单向和双向多对多关系映射
多对多关系是比较常见的关系,很多表之间的关系都涉及多对多,比如老师和学生,一个老师可以有很多个学生,一个学生可以有很多个老师。常见的权限管理模块,一个角色可以有很多个功能,一个功能也可以有很多个角色,这是无法仅仅通过两张表就可以指明关系的,通常需要中间表来建立两种表的关系,中间表通常也叫关系表,数据库中书存在的,但是hibernate我们不需要写关系表的类。如下: 类Role 和Function类原创 2017-09-02 14:59:02 · 345 阅读 · 0 评论 -
Hibernate基于外键和主键的双向一对一关系映射
基于外键的双向一对一关系映射 表结构: 类Person和类IdCardpublic class Person { private int id; private String name; private int age; private IdCard idCard;//get…set}public class IdCard{ private in原创 2017-08-31 19:48:31 · 1097 阅读 · 0 评论 -
Hibernate基于主键和外键的单向一对一的关联映射
表结构 基于外键单向一对一的关联映射 其实就是多对一中的一种情况,当unique设置为true时候可以设置一对一的关系,即设置外键值唯一 Person和IdCard类public class Person { private int id; private String name; private int age; private IdCard idCard;原创 2017-08-31 17:30:59 · 418 阅读 · 0 评论 -
Hibernate cascade和inverse讲解
cascade 级联:让操作级联到子实体 一般常见的由四个值: save-update delete none delete 下面一一介绍save-update :保存和更新多的一端的数据时,一的一端的数据可以一起保存和更新 如下是原来的代码Grade grade=new Grade(); grade.setName("基础");原创 2017-08-31 15:22:03 · 346 阅读 · 0 评论 -
Hibernate双向的一对多关系映射
单向一对多就是我们想通过一的一端获取多的一端的数据 单向多对一就是我们想通过多的一端获取一的一端的数据 但是有些应用我们既想通过一的一端获取多的一端的数据,又想通过多的一端获取一的一端的数据,那么这时候我们就需要配置双向的一对多的关系映射表结构如下: student和grade类public class Student { private int id; private S原创 2017-08-31 13:26:32 · 340 阅读 · 0 评论 -
Hiberante 单向多对一和一对多的关联映射
存在如下表,考虑多对一和一对多的配置 多对一,如何在多的一端配置 studentpublic class Student { private int id; private String name; private int age; private Grade grade;//get…set}Gradepublic class Grade { pri原创 2017-08-31 10:28:48 · 382 阅读 · 0 评论 -
Hibernate 组合主键映射、大对象映射、组件映射
通过组件来实现组合主键的步骤: 这里举个例子,一个表有学生编号,科目编号,成绩,显然学生编号和科目编号的组合才能作为主键1.编写组合主键的属性的类,该类必须实现Serializablepublic class ScoreId implements Serializable { private int stuId;//学生编号 private int subjectId;//科目原创 2017-08-31 09:47:05 · 388 阅读 · 0 评论 -
Hibernate4 日志和配置文件详解
日志实现1、 确定要使用日志的实现 这里比如log4j 在hibernate使用的日志标准都为slf,slf可以看作为它的接口,因此需要找到它的实例,为我们做日志。 2、 Slf4japi.jar和log4j的jar包放入classpath,(slf4j-log4j.jar) 3、 编写log4j.properties放入src下(project\etc下有)hibernate.cfg原创 2017-08-30 14:20:36 · 707 阅读 · 0 评论 -
Hibernate4 hello案例
搭建第一个hibernate项目,因为只用到了数据库,我们这里建立java项目即可,之后用junit单元测 搭建步骤:1 . 新建java项目2 . 导入相关jar包3 . 编写配置文件hibernate.cfg.xml(放在src下)模板文件比如xml的头文件可以参考下载包里面的etc,以下是博主的路径 D:\soft\hibernate-release-4.3.10.Final\proje原创 2017-08-30 12:11:20 · 271 阅读 · 0 评论 -
初识Hibernate4
持久化的概念:狭义概念:数据存储在物理介质不会消失广义概念:对数据额crud操作都叫持久化加载:hibernate里的数据从数据库中加载到sessionORM(object relation mapping ) 对象关系映射,对象映射到数据库中 阻抗不匹配:对象和关系型数据库不匹配 没有侵入性:不用继承hibernate的类或者接口Hibernate是一个orm轻量级的全自原创 2017-08-30 12:07:43 · 261 阅读 · 0 评论 -
Hibernate缓存机制
Hibernate缓存主要分为三类一级缓存二级缓存查询缓存一级缓存又称session缓存,生命周期和session相同,周期较短。事务级别的缓存(我们提交一个事务后就把session关闭掉了)get使用了一级缓存,用get获取数据的时候,首先检查缓存中是否有这个数据,如果有直接从缓存中取数据,如果没有查询数据库,同时将数据保存到缓存中 load也使用了一级缓存,同时还支持原创 2017-09-04 21:03:43 · 309 阅读 · 0 评论 -
Hibernate对象的生命周期及crud操作
Transient(瞬时状态) session没有,数据库没有 Persisent(持久状态) session有,数据库有 Detached(游离状态) session没有,数据库有session的获得否封装在HibernateUtil里面,如下public class HibernateUtil { private static Configuration cfg=null;原创 2017-08-30 16:01:19 · 328 阅读 · 0 评论 -
Hibernate抓取策略
抓取策略(fetching strategy) 是指:当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候, Hibernate如何获取关联对象的策略。原创 2017-09-04 16:09:22 · 446 阅读 · 0 评论 -
Hibernate懒加载策略
Lazy的概念就是只有在真正使用对象时,才会去创建。对hibernate而言,就是真正加载时才发出加载Sql语句。 延迟加载机制是为了避免一些无谓的性能开销而提出来的。1 . 即时加载 –get加载数据 使用get获取数据,会立即查找(缓存—数据库)2 .延迟加载 懒加载 lazy—load,不会立即查找,当需要的时候才会查找,容易造成:LazyInitialaztionException异常:因原创 2017-09-04 14:58:09 · 389 阅读 · 0 评论 -
Hibernate继承映射
继承映射有三种方式基于一张表的继承映射基于每个具体类一张表的继承映射基于每个类一张表的继承映射我们考虑下面的继承关系 学生和老师都继承Person,区别就是老师有工资,学生有作业。那么考虑怎么配置让数据库知道这种关系。 三个类代码分别是(get/set方法都省略了)public class Person { private int id; private String原创 2017-09-02 18:39:13 · 262 阅读 · 0 评论