1.3 在IDEA中使用Maven編寫一個Hibernate程序(IDEA+Maven+Hibernate)
1.3.1 創建項目
1. 先創建一個Maven項目
.
2. 完善項目
創建成功的項目目錄結構所有缺失,我們需要手動創建完成。
在main目錄下分別創建java和resources文件夾。
同樣在main下新建test測試文件夾,再在此文件夾下新建Java測試源碼文件夾和resource測試資源文件夾。(這裏的圖用的是我上一篇Maven的截圖,有部分不一樣,但是操作都是一樣的,不要介意)
建裏好缺失的文件夾以後,我們還需要更改新建的文件夾的 作用:
更改完成以後的樣式:
.
3. 配置相關的依賴包
這裏我們需要導入到 mysql 和 hibernate 依賴的jar包
<!--引入hibernate包-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.0.7.Final</version>
</dependency>
<!--引入mysql包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
.
.
.
1.3.2 對Hibernate和MySQL進行相關調配
1. 添加hibernate的配置文件
好了,hibernate 的配置文件我們就添加成功了
.
.
2. 對剛添加的hibernate配置文件進行編寫
<?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>
<!-- mysql賬戶名 -->
<property name="hibernate.connection.username">root</property>
<!-- mysql密碼 -->
<property name="hibernate.connection.password">123456</property>
<!-- mysql驅動 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- mysql連接URL -->
<property name="hibernate.connection.url">jdbc:mysql:///hibernatedemo?useUnicode=true&characterEncoding=UTF-8</property>
<!-- 數據庫方言 -->
<!--<property name="dialect">org.hibernate.dialect.MySQLDialect</property>-->
<!--// 5.0之後使用的數據庫方言-->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 顯示sql語句 -->
<property name="show_sql">true</property>
<!-- 格式化sql語句 -->
<property name="format_sql">true</property>
<!-- 根據需要創建數據庫 (這裏的操作是,如果數據庫中已經有這個表,就將這個表刪除掉,重新創建表格)-->
<!--<property name="hbm2ddl.auto">create</property>-->
<!--添加剛剛生成的映射類-->
<!--<mapping class="cn.corey.UserEntity"></mapping>-->
</session-factory>
</hibernate-configuration>
.
.
3. 連接數據庫
在連接數據庫之前呢,我在這裏插一步,這是創建我們MySQL的表格的代碼:
CREATE DATABASE hibernatedemo;
USE hibernatedemo;
CREATE TABLE `user` (
`user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '編號(主鍵)',
`user_name` varchar(32) NOT NULL COMMENT '姓名',
`user_password` varchar(32) DEFAULT NULL COMMENT '密碼',
`user_phone` varchar(64) DEFAULT NULL COMMENT '電話',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
通過idea的database數據庫進行連接數據庫
.
這幾步設置完成,直接點擊 OK就好了。
點擊OK以後,它會顯示這樣的一個界面,我們可以在這個界面運行我們的sql語句
.
.
4. 表與類的數據映射的關係
導入數據庫模式OR映射即將生成。你想繼續嗎? 點擊YES
自動生成映射類:
到這裏,我們還需要回到 hibernate.cfg.xml配置文件配置一下添加剛剛生成的映射類
<!--添加剛剛生成的映射類-->
<mapping class="cn.corey.UserEntity"></mapping>
完整的hibernate.cfg.xml配置:
<?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>
<!-- mysql賬戶名 -->
<property name="hibernate.connection.username">root</property>
<!-- mysql密碼 -->
<property name="hibernate.connection.password">123456</property>
<!-- mysql驅動 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- mysql連接URL -->
<property name="hibernate.connection.url">jdbc:mysql:///hibernatedemo?useUnicode=true&characterEncoding=UTF-8</property>
<!-- 數據庫方言 -->
<!--<property name="dialect">org.hibernate.dialect.MySQLDialect</property>-->
<!--// 5.0之後使用的數據庫方言-->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 顯示sql語句 -->
<property name="show_sql">true</property>
<!-- 格式化sql語句 -->
<property name="format_sql">true</property>
<!-- 根據需要創建數據庫 (這裏的操作是,如果數據庫中已經有這個表,就將這個表刪除掉,重新創建表格)-->
<!--<property name="hbm2ddl.auto">create</property>-->
<!--添加剛剛生成的映射類-->
<mapping class="cn.corey.UserEntity"></mapping>
</session-factory>
</hibernate-configuration>
.
.
.
.
1.3.3 編寫測試類,進行測試
還是,先順一下Hibernate持久化的七個步驟:
// 1. Configuration 加載配置,進行初始化
// 2. SessionFactory 是Session的“工廠”
// 3. Session 創建實例
// 4. Transaction 開啓事務
// 5. 編寫程序,實現操作
// 6. commit 提交,結束事務
// 7. close 關閉Session,釋放資源
1. 創建並編寫測試類
需要注意的一點是導包一定不要導錯了
測試類完成代碼:
package cn.corey;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
/**
* Hibernate測試類
*/
public class HibernateTest1 {
public static void main(String[] args) {
// 1. Configuration 加載配置,進行初始化
Configuration configuration=new Configuration().configure();
// 2. SessionFactory 是Session的“工廠”
SessionFactory sessionFactory=configuration.buildSessionFactory();
// 3. Session 創建實例
Session session=sessionFactory.openSession();
// 4. Transaction 開啓事務
Transaction transaction=session.beginTransaction();
// 5. 編寫程序,實現操作
UserEntity userEntity=new UserEntity();
userEntity.setUserName("Corey");
userEntity.setUserPassword("1433223");
session.save(userEntity);
// 6. commit 提交,結束事務
transaction.commit();
// 7. close 關閉Session,釋放資源
session.close();
}
}
.
2. 進行測試
因爲我們在Hibernate的配置中添加了SQL語句的打印:
<!-- 顯示sql語句 -->
<property name="show_sql">true</property>
所以,當我們測試類運行成功的時候,控制檯會打印我們所運行的SQL語句
程序運行成功,我們進到MySQL裏看下我們添加的數據有沒有添加進來
查詢數據庫表,我們要添加的數據已經成功添加到表中了,程序功能實現成功
.