您的位置:首页 > 编程语言 > Java开发

(一)Hibernate基本配置和使用

2018-03-10 15:41 405 查看

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息