1.創建數據庫
數據庫名: hibernate_1
2.創建客戶表
表名:customer
建表語句:
CREATE TABLE customer(
c_id bigint(20) PRIMARY KEY AUTO_INCREMENT,
c_name varchar(20) NOT NULL,
c_gender varchar(2) DEFAULT NULL,
c_age int(11) DEFAULT NULL,
c_level varchar(20) DEFAULT NULL
)
3.創建項目
項目名: hibernate_base01
在Maven項目,在pom文件配置
<!-- hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.10.Final</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
4.創建實體類
/**
* 客戶實體類
*/
public class Customer{
private Long id;
private String name;
private String gender;
private Integer age;
private String level;
//構造方法、setters、getters、toString
}
注意: 這裏應該關注映射類型 ,所謂的映射類型就是 Hibernate類型,Java類型和SQL數據類型的一個對應關係,實體類屬性類型要與數據庫類型一一對應
5. 實體類配置映射文件
映射文件編寫規則:
文件命名: 實體類名.hbm.xml
文件位置:與實體類存在在同一目錄下
- 創建Customer.hbm.xml
- 導入約束
打開項目依賴包目錄查找如下包
找到包內hibernate-mapping-3.0.dtd ,複製如下內容至Customer.hbm.xml文件頭
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
- 繼續編寫Customer.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!--
name:是全類名(包名.類名)
table:表名
-->
<class name="com.qfedu.hibernate.pojo.Customer" table="customer">
<!-- 主鍵 -->
<id name="id" column="c_id">
<generator class="native"></generator>
</id>
<!--
其他屬性
name:是實體類的屬性名
column:是數據庫的字段名
-->
<property name="name" column="c_name"></property>
<property name="gender" column="c_gender"></property>
<property name="age" column="c_age"></property>
<property name="level" column="c_level"></property>
</class>
</hibernate-mapping>
6.編寫核心配置文件
核心配置文件編寫規則:
文件命名:hibernate.cfg.xml
文件位置: 項目src目錄下
maven項目resources下
- 創建hibernate.cfg.xml
- 導入約束
打開項目依賴包目錄查找如下包
找到包內hibernate-mapping-3.0.dtd ,複製如下內容至hibernate.hbm.xml文件頭
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
- 繼續編寫hibernate.cfg.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<!-- 連接數據庫的參數 -->
<session-factory>
<!-- 1、連接數據庫參數 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_1</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">111</property>
<!--
2、hibernate方言
org.hibernate.dialect.MySQLDialect 5.0版本使用(mysql版本5.5)
org.hibernate.dialect.MySQL5InnoDBDialect 5.2版本使用,否則無法自動建表,或有時自動建表是
engine=MyISAM(mysql版本5.5)
-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!--
3、hibernate擴展參數
擴展參數是可選配置。
hibernate.show_sql : 是否輸出 Hibernate 生成的 sql 語句
hibernate.format_sql: 是否格式化 Hibernate 生成的 sql 語句
hibernate.hbm2ddl.auto : 是否需要 Hibernate 維護表結構
-->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!--
4、*.hbm.xml文件
映射實體類映射文件
-->
<mapping resource="pojo/Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>