简介:使用工具Maven,搭建最简单Hibernate入门实例。
一、环境搭建
1 - 创建项目
mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=ray
-DartifactId=ZigZag -DarchetypeArtifactId=maven-archetype-quickstart
-Dversion=0.0.1-snapshot
2 - 文件结构
3 - 编写pom.xml依赖文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ray</groupId>
<artifactId>ZigZag</artifactId>
<packaging>jar</packaging>
<version>0.0.1-snapshot</version>
<name>ZigZag</name>
<url>http://maven.apache.org</url>
<dependencies>
<!-- Hibernate核心包 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.0.Final</version>
</dependency>
<!-- MySQL数据库连接包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>
<!-- Junit单元测试包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3.RC2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.3.RC2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
4 - 代码文件布局
代码参见https://blog.csdn.net/weixin_42480750/article/details/82843533
正如IDE中的项目目录结构一样
- User.java文件放置源文件目录中
- User.hbm.xml和它放在一起
- hibernate.cfg.xml文件与放置代码的源文件目录同级
- UserTest.java测试文件放在测试目录中
二、单元测试
1 - 编译成功
2 - 测试:不能加载配置文件(hibernate.cfg.xml)
org.hibernate.internal.util.config.ConfigurationException:
Could not locate cfg.xml resource [hibernate.cfg.xml]
- 解决之道:Maven默认在资源文件(.xml等)应该放在专门的目录中
3 - 测试:找不到User.hbm.xml文件
Mapping (RESOURCE) not found : ray/User.hbm.xml : origin(ray/User.hbm.xml)
- 解决之道:同上,资源文件必须防止在resources目录中且与源代码文件目录结构相同
4 - 测试成功
三、使用注解
1 - 删除User.hbm.xml配置文件
2 - 为源文件添加注解
package ray;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity //实体
public class User {
@Id //主键
@GeneratedValue //自生成
private int uid;
private String username; //自动识别
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
3 - 修改hibernate.cfg.xml文件
4 - 测试成功
5 - 再次注意hibernatecfg.xml中的Mapping
-
当使用配置文件时
<mapping resource="ray/User.hbm.xml"/>
-
当使用注解时
<mapping class="ray.User"/>