hibernate笔记
来源:互联网 发布:淘宝上的海外专营店 编辑:程序博客网 时间:2024/06/11 11:59
Hibernate在建立sessionFactory时使用单例模式:
马士兵的hibernate课堂笔记:
对象的三种状态:
一对一主键关联:
一对一外键关联:
多对一的实体类:(user-group)(多---1)
package cn.ljj.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="t_user")
public class User {
private int id;
private String name;
private Group group;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToOne
public Group getGroup() {
return group;
}
public void setGroup(Group group) {
this.group = group;
}
}
数据库设计三范式:
1.要有主键,列不可分
2.联合主键的情况不能存在部分依赖
3.不能存在传递依赖
public class HibernateCoreAPITest {
private static SessionFactory sf = null;
@BeforeClass
public static void beforeClass() {
sf = new AnnotationConfiguration().configure().buildSessionFactory();
}
@Test
public void testTeacherSave() {
Session session = sf.openSession(); //永远是创建一个新的session,不会是那原来的那个session(比较旧的方法)
//Session session = sf.getCurrentSession(); //如果当前的上下文环境中没有session,就创建一个新的session,如果已经有一个session,就使用旧的session
session.beginTransaction();
session.save(t);
session.getTransaction().commit();
session.close();
}
@AfterClass
public static void afterClass() {
sf.close();
}
}
以上程序事要说明:sessionFactory.getCurrentSession(); 当session在提交之前(即在执行session.getTransaction().commit();),不论拿多少个session, 他都拿的是同一个session,但是当session一旦提交之后,则该session就会关闭,再通过sessionFactory.getCurrentSession()取得的session就不再是之前的那个session了,它会重新创建一个session。
- Hibernate笔记
- Hibernate 笔记
- Hibernate笔记
- Hibernate笔记
- Hibernate笔记
- hibernate笔记
- Hibernate笔记
- Hibernate笔记
- hibernate笔记
- hibernate笔记
- Hibernate笔记
- hibernate 笔记
- Hibernate笔记
- Hibernate笔记
- Hibernate 笔记
- Hibernate 笔记
- Hibernate 笔记
- Hibernate笔记
- cs231学习笔记二 线性分类器、SVM、Softmax
- C语言代码合并神器for Mac
- LeetCode 63. Unique Paths II
- myEclipse中的web项目直接引入到eclipse中运行
- 二叉搜索树
- hibernate笔记
- 线程同步(计时器)
- SecureCRT 连接虚拟机Linux
- SpringMvc Eclipse搭建web项目
- C语言代码计算神器for Mac
- A* 寻路
- 软件开发生命周期的管理
- android五中方式调用服务service中的方法
- [Contest] THUSC 2016 解题报告