本文通过一个demo运行最简单的Hibernate示例。
新建Maven项目,添加Hibernate依赖和mysql连接驱动。
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <dependencies>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.2.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
</dependencies>
|
编写实体类User
包含三个字段,uid,userName,password,在User
类同文件夹下,创建映射文件,定义实体对象和数据表的对应关系(名称没有要求):
User.hbm.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
| <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="entity.User" table="t_user">
<id name="uid" column="uid">
<generator class="native"></generator>
</id>
<property name="password" column="password"></property>
<property name="userName" column="userName"></property>
</class>
</hibernate-mapping>
|
src文件夹下,新建hibernate.cfg.xml
,这个是hibernate的核心配置文件,必须在src文件夹下。
核心配置文件包含三部分:
- 数据源配置
- 选项配置(是否打印SQL、是否自动创建表、是否格式化SQL等等)
- 映射文件引入(实体对象关系)
hibernate.cfg.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:mysql://[数据库ip]:3306/hibernate</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<mapping resource="entity/User.hbm.xml"/>
<!-- DB schema will be updated if needed -->
<!-- <property name="hibernate.hbm2ddl.auto">update</property> -->
</session-factory>
</hibernate-configuration>
|
编写main
方法,首先,实例化hibernate的Configuration
对象,使得核心配置文件被加载(但是还未执行程序)。
然后创建SessionFactory
对象,如下????
1
2
3
| Configuration configuration = new Configuration();
configuration.configure();
SessionFactory factory = configuration.buildSessionFactory();
|
这时,发现数据库中新建了表,所以创建数据表操作在创建SessionFactory的时候进行。
使用factory的openSession
方法可以获得一个数据库连接session
,通过session
可以执行CRUD,一个DEMO????
1
2
3
4
5
| Session session = factory.openSession();
User user = new User();
user.setUserName("小明");
user.setPassword("21346565");
session.save(user);
|
至此,即是一个最简单的hibernate示例,主要步骤:
- 添加依赖
- 创建实体类
- 创建编写映射文件
- 创建核心配置文件
- 编写main方法,实例化
Configuration
类,加载配置文件。 - 创建SessionFactory对象
- 获取Session连接,执行CRUD