版权声明:转载请注明本文源地址
入门实例:向数据库插入一个对象
1. 第一步需要引入我们的jar包,推荐使用maven管理项目,直接在pom.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
- 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
2. 配置hibernate.cfg.xml
在类根路径下创建hibernate.cfg.xml,在测试文件中,我们会默认读取此位置下此名字的hibernate配置文件。
- 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
- 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
3. 编写实体类对象
hibernate是一个ORM(Object-Relation-Mapping)对象关系映射型框架,我们通过创建实体类,一一对应到我们的数据库表。一旦配置好我们的实体类,hibernate能够自动帮我们完成数据库建表操作。本系列环境基于hibernate5,这里优先使用注解的形式来配置实体。
- 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
- 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
关于注解配置实体类的更多属性,我们会在后面系列文章详细提到。
4. 编写测试文件
在我们完成数据库操作前,需要先知道hibernate的两个核心类:
类名 | 说明 |
---|---|
SessionFactory (org.hibernate.SessionFactory) | 针对单个数据库映射关系经过编译后的内存镜像,是线程安全的(不可变)。 它是生成Session的工厂。 |
Session (org.hibernate.Session) | 表示应用程序与持久储存层之间交互操作的一个单线程对象,此对象生存期很短,隐藏了JDBC连接,也是Transaction的工厂。 |
一般在使用hibernate中,我们往往初始话一个SessionFactory对象,因为它是重量级对象,创建需要耗费大量的资源。一旦我们需要进行数据库操作时,我们可以创建新的Session会话对象,来进行我们的数据库操作。明白这一点后,我们开始我们的测试文件编写
- 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
- 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
运行测试文件。我们看到控制台输出:
Hibernate: insert into t_user (name) values (?)
查看MySQL数据库,发现hibernate已自动帮我们创建好表格,同时User数据插入成功。
mysql> desc t_user;
+——-+————–+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+——-+————–+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
+——-+————–+——+—–+———+—————-+
2 rows in set (0.00 sec)
源码下载
本实例源码可到https://github.com/jeanhao/hibernate下载。