一. 概述:hibernate框架是作用于dao层的,实现对数据的持久化保存.通过面向对象的方式操作数据库。
二. hibernate框架的搭建
1.导包
lib目录下的required文件夹下的所有jar包.
mysql驱动包.
2.创建数据库于表.
3.创建实体类.
4.创建实体映射文件(以crm练习Customer类为例)
实体类名.hbm.xml
引入约束文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
<? 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">
<!-- 根元素
package(可选):填写包名.后面凡是需要完整类名的地方,都可以省略包名了.
-->
< hibernate-mapping package = "cn.itcast.domain" >
<!-- class:映射类与表的关系
name属性:实体属性名
table属性:对应的表名
-->
< class name = "Customer" table = "cst_customer" >
<!-- id:映射主键属性名(OID)与主键列对应关系
name属性: OID名称
column属性(可选):主键列名,默认值就是name属性值
length属性(可选):指定属性长度.默认值使用数据库对应列长度
type属性(可选):指定当前列(属性)的类型.默认值会根据数据库类型自动指定类型.
type="long" hibernate类型
type="java.lang.Long" java类型
<column name="cust_id" sql-type="bigint" ></column> 数据库类型
-->
< id name = "cust_id" >
<!--主键生成策略
increment:hibernate每次保存数据是,会查询数据库中最大的值,在最大值的基础上加1作为新的主键值(测试时使用)
identity:主键自增,有数据库负责生成主键值
sequence:序列,Oracle时使用
hilo:高低位算法,适用于既不支持自增也不支持序列的库(用不着)
native:identity|sequence|hilo自动三选一
uuid:主键类型为字符串是使用.
assigned:有我们手动指定ID值
-->
< generator class = "native" ></ generator >
</ id >
<!-- property:映射非主键属性名与非主键列对应关系
name属性: 属性名
column属性(可选):非主键列名,默认值就是name属性值
length属性(可选):指定属性长度.默认值使用数据库对应列长度
type属性(可选):指定当前列(属性)的类型.默认值会根据数据库类型自动指定类型.
type="long" hibernate类型
type="java.lang.Long" java类型
<column name="cust_id" sql-type="bigint" ></column> 数据库类型
-->
< property name = "cust_name" column = "cust_name" ></ property >
< property name = "cust_source" ></ property >
< property name = "cust_industry" column = "cust_industry" ></ property >
< property name = "cust_level" column = "cust_level" ></ property >
< property name = "cust_phone" column = "cust_phone" ></ property >
< property name = "cust_mobile" column = "cust_mobile" ></ property >
</ class >
</ hibernate-mapping >
|
创建主配置文件
hibernate.cfg.xml(在src下)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<? 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 >
<!-- 以下都是为sessionFactory对象配置的 -->
< session-factory >
<!-- 必选配置
//方言
//所有数据库的sql语句都是基于SQL99标准的
//每个数据库遵循SQL99标准的同时,也会扩充一部分SQL语句.这些标准之外的sql语句叫做方言 mysql方言: limit 0,5
//注意:mysql方言类一共有3个.一定要选最短的
#hibernate.dialect org.hibernate.dialect.MySQLDialect
//数据库驱动
#hibernate.connection.driver_class com.mysql.jdbc.Driver
//数据库连接url
#hibernate.connection.url jdbc:mysql:///test
//连接用户名
#hibernate.connection.username gavin
//连接密码
#hibernate.connection.password
-->
< property name = "hibernate.connection.driver_class" >com.mysql.jdbc.Driver</ property >
< property name = "hibernate.connection.url" >jdbc:mysql:///hibernate_54</ property >
< property name = "hibernate.connection.username" >root</ property >
< property name = "hibernate.connection.password" >1234</ property >
< property name = "hibernate.dialect" >org.hibernate.dialect.MySQLDialect</ property >
<!-- 可选配置
//是否在控制台显示hibernate生成的sql
hibernate.show_sql true
//是否对显示到控制台的sql语句格式化
hibernate.format_sql true
//自动建表
# create(测试时使用) : 自动建表,每次启动hibernate的时候都会自动建表.
# create-drop(测试时使用) : 自动建表,每次启动hibernate的时候都会自动建表.释放资源时会将所有表删除.
# update(常用) : 自动建表,有表就不会再创建,如果已经存在的表不完全匹配.会自动修改表结构.
# validate : 校验表结构.不会自动建表.每次hibernate启动时都会检查表结构是否正确.
//不正确=>抛出异常.
-->
< property name = "hibernate.show_sql" >true</ property >
< property name = "hibernate.format_sql" >true</ property >
< property name = "hibernate.hbm2ddl.auto" >update</ property >
<!-- 指定数据库隔离级别
## specify a JDBC isolation level
#hibernate.connection.isolation 4
mysql 默认级别是4
Oracle 默认级别是2
-->
< property name = "hibernate.connection.isolation" >4</ property >
<!-- 配置session与当前线程绑定 -->
< property name = "hibernate.current_session_context_class" >thread</ property >
<!-- 映射引入配置
resource属性:填写引入映射文件的路径. 相对于src目录下.
-->
< mapping resource = "cn/itcast/domain/Customer.hbm.xml" />
</ session-factory >
</ hibernate-configuration >
|
以上这篇hibernate框架环境搭建具体步骤(介绍)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。