1.创建一个Hibernate入门项目
1、创建maven项目
2、引入依赖
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 用来编译源码和打包的 -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<!-- hibernate 的依赖-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.7.Final</version>
</dependency>
<!-- mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
</dependencies>
<build>
<!-- 负责匹配映射文件地址-->
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
3、在resources目录下创建hibernate配置文件
4、创建实体类对象User
5、创建映射文件User.hbm.xml(与User在相同目录下)
6、数据库中创建表
7、创建测试类测试
8、运行方法成功往数据库中插入一条数据
2.数据库生成方式
- update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行,要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会。
- validate:每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,如果不一致就抛出异常,但是会插入新值。
- create:每次执行前都先把原有数据表删除,然后创建该表,这就是导致数据库表数据丢失的一个重要原因。
- create-drop:每次执行前都先把数据表删除,然后创建该表,关闭SessionFactory时,将删除掉该数据库表。
在hibernate.cfg.xml配置文件中设置
3.当想让控制台上显示sql的时候就在配置文件中设置如下内容
也可以格式化sql