老司机带你学系列-Hibernate入门到精通-1
来源:互联网 发布:阿里云服务器增加磁盘 编辑:程序博客网 时间:2024/05/19 06:17
老司机带你学系列-Hibernate入门到精通
1 数据持久化
1.1 ORM、JPA、Hibernate的关系
ORM是一种思想,对象关系映射。
JPA是制定一套规范,支持ORM。java持久化api。
Hibernate是对JPA接口的实现,以完整实现ORM这种数据持久化的思想。
1.2 配置文件
1、映射文件:***.hbm.xml
a) 类到表的映射。
b) 属性到字段的映射。
c) 对象与记录的映射
范例:Studeng配置文件student.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="yibai.Student" table="t_student">
<id name="id" column="tid">
<generator class="native"></generator>
</id>
<property name="name" column="tname"></property>
<property name="age" column="tage"></property>
<property name="score" column="tscore"></property>
</class>
</hibernate-mapping>
实体类:
package yibai;
public class Student {
public Student(Stringname, int age,double score) {
super();
this.name =name;
this.age =age;
this.score =score;
}
public Student() {
super();
}
private Integer id;
private String name;
private int age;
private double score;
public Integer getId() {
return id;
}
public void setId(Integerid) {
this.id =id;
}
public String getName() {
return name;
}
public void setName(Stringname) {
this.name =name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age =age;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score =score;
}
@Override
public String toString() {
return "Student [id=" +id + ", name=" +name + ", age=" + age + ", score=" + score + "]";
}
}
2、主配置文件:hibernate.cfg.xml
a) session-factory,session工厂,取得session的地方,在hibernate里面,所有的增删改查等数据库操作都需要依靠session来完成。
session-factory的配置要点:DB连接四要素;定义注册文件。
范例1:定义主配置文件hibernate.cfg.xml,配置DB连接四要素和定义注册文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- DB连接四要素 -->
<property name="hibernate.connection.driver_class">
oracle.jdbc.OracleDriver
</property>
<property name="hibernate.connection.url">
jdbc:oracle:thin:@190.2.3.150:1521:sms
</property>
<property name="hibernate.connection.username">lai</property>
<property name="hibernate.connection.password">lai</property>
<!-- 注册映射文件 -->
<mapping resource="yibai/student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
范例2:定义主配置文件:注册方言(hibernate.dialect),方言指的是:我们平时写的都是标准的SQL,而不同的dbms不同的数据库管理系统,里边的SQL写起来大体上相同,稍微有些不同,不同的地方就是叫方言。hibernate需要自动生成SQL遇见,需要我们给他指定方言,才能正确的生成SQL。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- DB连接四要素 -->
<property name="hibernate.connection.driver_class">
oracle.jdbc.OracleDriver
</property>
<property name="hibernate.connection.url">
jdbc:oracle:thin:@190.2.3.150:1521:sms
</property>
<property name="hibernate.connection.username">lai</property>
<property name="hibernate.connection.password">lai</property>
<!-- 注册映射文件 -->
<mapping resource="yibai/student.hbm.xml"/>
<!-- 定义方言 ,值可以在core包里面找dialect-->
<property name="hibernate.dialect">
org.hibernate.dialect.Oracle10gDialect
</property>
</session-factory>
</hibernate-configuration>
范例3:定义主配置文件,注册C3P0数据库连接池
范例4:定义主配置文件,注册上下文
- 老司机带你学系列-Hibernate入门到精通-1
- 老司机带你走进Core Animation
- 老司机带你了解hadoop
- 老司机带你检测相似图片
- 老司机带你学习GreenDao3
- iOS-YHChat仿微信聊天(老司机带你入门即时通讯)
- 老司机带你玩转linux(一)shell入门
- 你知道老司机吗,这里带你飘逸
- 老司机带新手
- Hibernate入门到精通
- 老司机带你玩转web service
- 老司机带你探索内核编译系统--kbuild
- 老司机带你了解Android的handler机制
- 老司机带你玩转网盘,就是这么简单暴力
- 如何激活win7系统?老司机带你上路!
- 老司机带你探知存储伸缩之道
- 老司机带你探知存储伸缩之道
- 老司机带你get海量网页请求数据
- CEF3:与 JavaScript 整合(一)
- Mac 安装 nodejs (图文详细步骤)及SublimeText运行JavaScript控制台
- 最大子阵和(DP)&& Hdu 1003 && Hdu 1081
- 一致性哈希算法(consistent hash)的黑科技
- Android弹出popupWindow 背景变暗(背景半透明)(两种写法)
- 老司机带你学系列-Hibernate入门到精通-1
- 记录下关于安卓项目集成微信支付的过程
- JavaWeb学习总结——文件的上传和下载
- echarts常用设置
- eclipse中创建带有父子结构的项目
- EventBus3.0使用
- BigInteger类
- vue 1.x 组件数据传递
- java笔试中字符串翻转的几种方法