hibernate
大玉莞尔
Playing~~~Fighting~~~
展开
-
Hibernate(annotation版本helloworld)-2
hibernate3.0版本后支持annotation原创 2017-05-23 10:24:52 · 232 阅读 · 0 评论 -
hibernate-关系映射(多对一单向关联)-8
三范式:1. 列不可再分 2. 不能部分依赖 3. 不能存在传递依赖 一对多: 一个用户组有多个用户,一个用户只能属于一个用户组(需要在User中定义外键group_id,该外键参考Group中的id) (@ManyToOne)annotation中:@Entity@Table(name = "t_group")public clas原创 2017-05-31 16:10:03 · 283 阅读 · 0 评论 -
hibernate-关系映射(一对多单向关联)-9
一对多单向关联数据库表设计:在多方加外键 ( @OneToMany @JoinColumn(name = “groupId”) ,要写@JoinColumn否则hibernate认为是多对多,会生成3张表) (@Entity@Table(name = "t_group")public class Group { private int id; private原创 2017-05-31 16:40:40 · 339 阅读 · 0 评论 -
hibernate-关系映射一对多(多对一)双向关联)-10
一回事 annotation方式:@Entity@Table(name = "t_group")public class Group { private int id; private Set<User> users = new HashSet<User>(); @OneToMany(mappedBy = "group") public Set<User> get原创 2017-05-31 16:57:46 · 225 阅读 · 0 评论 -
hibernate-关系映射-多对多(双向)-12
annotation方式:@Entitypublic class Teacher { private int id; private Set<Student> students = new HashSet<Student>(); @ManyToMany @JoinTable(name = "t_s", joinColumns={@JoinCol原创 2017-05-31 17:44:14 · 363 阅读 · 0 评论 -
id生成策略-(xml、annotation)-4
id生成策略uuid 注意,需要将java类中对应字段设为String,xml文件中 <id name="id" > <generator class="uuid"/> </id>native (hibernate自动匹配id生成策略) 如果是mysql数据库,java类中对应字段设为int (注意,如果只修改字段类型的话,hibernate不会重新生成表,测原创 2017-05-25 17:33:04 · 364 阅读 · 0 评论 -
hibernate-关联关系中的crud-13
保存User类的情况many2one-one2many的双向关联中,例如group和user的关联,在User类中设置 @ManyToOne(cascade = {CascadeType.ALL}),在保存User的时候会级联保存group(all任何操作,persist 存储操作,remove删除)在@one2one,one2many,many2one等都可设置级联注意:它只是简原创 2017-06-01 15:01:38 · 234 阅读 · 0 评论 -
hibernate-14-集合映射(不太重要)
setlist// 是可排序的 和set区别不大 @OneToMany(mappedBy = "group",cascade = CascadeType.ALL) @OrderBy("name ASC") public List<User> getUsers() { return users; }map private Map<Inte原创 2017-06-02 16:57:13 · 320 阅读 · 0 评论 -
hibernate-HQL(query language)-16
几种查询方式:nativeSQL 缺点:不能跨平台 优点:需要存储过程、复杂查询的时候 重要HQL(hibernate query language) 把hql语言 转换为方言EJB QL(JP QL 1.0) 可以认为是hql的子集QBCQBEpublic class HibernateORMappingTest { public static SessionFac原创 2017-06-03 22:33:52 · 308 阅读 · 0 评论 -
hibernate-继承映射-15(不太重要)
三种方式: 1. sigleTable(一张表) 2. tablePerClass(一个类一张表) 3. joined(一个主表存id和共有的字段等,其他的表存id和各子类特定的字段)原创 2017-06-02 17:31:10 · 281 阅读 · 0 评论 -
hibernate-HQL-17
public class HQLTwoTest { public static SessionFactory sf = null; @BeforeClass public static void beforeClass(){ Configuration cfg = new AnnotationConfiguration(); sf = cfg.c原创 2017-06-03 22:56:33 · 258 阅读 · 0 评论 -
hibernate-悲观锁、乐观锁-22
111原创 2017-06-05 10:32:27 · 207 阅读 · 0 评论 -
hibernate-事务并发处理-21
事务acid 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability) 事务并发可能出问题 08:00原创 2017-06-04 23:42:00 · 301 阅读 · 0 评论 -
Hibernate初印象(helloworld)-1
参考文档: http://docs.jboss.org/hibernate/orm/4.2/quickstart/en-US/html_single/#d5e57mysql中创建表studenthibernate.cfg.xml<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC原创 2017-05-22 17:14:36 · 219 阅读 · 0 评论 -
hibernate-基础配置-3
hibernate.cfg.xml中hbm2ddl.auto1.validate 创建时校验 2.update xml或annotation和数据库中表不同时,hibernate帮助更新数据库 3. create (常用) hibernate帮助创建表(会覆盖数据) 4. create-drop create-drop:当session关闭时,hibernate会删除表搭建日志环境,原创 2017-05-24 15:54:14 · 199 阅读 · 0 评论 -
hibernate-提纲
annotation、xml原理模拟、什么是O/RMapping常见ORM框架(了解)hibernate基础配置(重点)id生成策略(掌握auto)Hibernate核心开发接口介绍(重点)对象的三种状态(了解)关系映射(非常重点)Hibernate查询(HQL)(了解 会查)在Struts基础上完善BBS2009性能优化(重点 面试)补充话题原创 2017-05-25 15:49:28 · 320 阅读 · 0 评论 -
id生成策略-(联合主键xml annotation)-5
xml中:新建主键类 // 注意实现序列化,原因a:如果集群中某机器down掉,可能要求把对象写到其他服务器磁盘上;原因b:机器可能使用虚拟内存,将对象写磁盘上 // 注意重写equals hashCode 原因:对象有可能存内存的hash表里,不要hashCode确定位置,需要equals比较对象的一致 public class StudentPK implements Seriali原创 2017-05-28 23:07:30 · 336 阅读 · 0 评论 -
hibernate-核心开发接口-6
configurationAnnotationConfiguration(读hibernate.cfg.xml中的数据配置)进行配置信息管理用来产生sessionFactory可以在configure方法中指定hibernate配置文件只需关注一个方法脚本buildSessionFactorySessionFactory用来产生和管理session(最主要的是维护数据库连接池) 通常情原创 2017-05-29 08:56:32 · 213 阅读 · 0 评论 -
hibernate-核心开发接口(delete、get、load 、saveOrUpdate 、SchemaExport)-7
delete// 注意删除一定要有主键存在sessions.save(t);get和load方法把数据库中的记录转化成对象,放到内存中 区别: 1. load返回的是代理对象,等到真正使用对象的内容才发出sql语句@Test public void testLoad() { Session sessions = sf.openSession();原创 2017-05-29 12:18:42 · 355 阅读 · 0 评论 -
hibernate-组件映射-9
11232原创 2017-05-29 21:20:04 · 264 阅读 · 0 评论 -
hibernate-关系映射(一对一(单向、双向))-8
对象之间的关系(重要)指的是对象间的关联关系一对一 单向(主键、外键) 双向(主键、外键) 中间表(很少用) 一对多 单向 双向 多对一 单向 双向 多对多 单向 双向一对一 单向(主键、外键)外键关联// husband和wife husband中的wifeid 参考wife的id@Entitypublic class Husband {原创 2017-05-29 17:29:35 · 368 阅读 · 0 评论 -
hibernate-性能优化(3种缓存)-19
注意session.clear()的运用,尤其是在不断分页循环的时候 a.在一个大集合中进行遍历,遍历msg,取出其中含有敏感字体的对象 b.另外一种形式的内存泄漏 // java有内存泄漏吗? 代码级别没有,实际操作中会有,例如:打开数据库、读文件不关闭链接,hibernate的分页没有进行session.clear()1+N问题(典型面试题) 例如:一个Category,对应一个t原创 2017-06-04 20:56:41 · 254 阅读 · 0 评论 -
hibernate-缓存算法-20
LRU list recently used(最近很少被使用的,先被拿走,即根据时间)LFU list frequently used(最近不常被使用,先被拿走,即根据访问次数)FIFO first in first outehcache.xml中三种算法都支持,可通过属性设置原创 2017-06-04 23:03:28 · 207 阅读 · 0 评论 -
hibernate-hql-18
public class HQLThreeTest { public static SessionFactory sf = null; @BeforeClass public static void beforeClass(){ Configuration cfg = new AnnotationConfiguration(); sf = cfg原创 2017-06-03 23:56:38 · 256 阅读 · 0 评论