1.搭建Hibernate环境
①导入jar包
②创建实体类
package cn.itcast.entity; public class User { private int uid; private String username; private String password; private String address; 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; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
(1)使用hibernate的时候不需要手动创建表,不需要手动创建
③配置实体类和数据库表的一一对应关系(映射关系)
(1)创建一个xml的配置文件
注意:映射配置文件名称和位置没有固定的要求
建议:在实体类的包里面创建,实体类的名称.hbm.xml
(2) 配置文件是xml格式的,在配置文件中首先引入xml约束
注意:学过的约束:dtd,schema在hibernate中使用的是dtd
<?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">
(3)配置映射的关系(重点)
<?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> <!-- 1.配置类和表的映射关系 name:实体类的全路经 table:数据库表的名称(可以自定义个表名称) --> <class name="cn.itcast.entity.User" table="t_user"> <!-- 2.配置实体类的id和表id hibernate要求实体类有一个唯一值 hibernate要求表中有唯一字段作为唯一值 --> <!-- id标签 name:实体类中的id属性名称 column:生成的表字段名称 --> <id name="uid" column="uid"> <!-- 设置数据库表id增长方式 native:生成表的id值就是主键和自动增长 --> <generator class="native"></generator> </id> <!-- 3.配置其他属性和表中字段对应 name:类中属性的名称 column:表中生成字段的名称 --> <property name="username" column="username"></property> <property name="password" column="password"></property> <property name="address" column="address"></property> </class> </hibernate-mapping>
④创建hibernate的核心配置文件
(1)核心配置文件的格式xml,但是核心配置文件的名称和位置是固定的
注意:位置:必须在src下面
名称:hibernate.cfg.xml
(2) 引入dtd约束
<?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">
(3)hibernate在操作的过程中只会加载核心配置文件,其他配置文件不会加载
第一部分:配置数据库的信息
<hibernate-configuration> <session-factory> <!-- 第一部分:配置数据库的信息(必须) --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">123456</property>
第二部分:配置hibernate信息
<!-- 第二部分:配置hibernate信息(可选)--> <!--输出底层sql语句 --> <property name="hibernate.show_sql">true</property> <!-- 输出底层sql语句的格式 --> <property name="hibernate.format_sql">true</property> <!--hibernate帮创建表,需要配置之后 update:如果已经有了表会更新,没有的话会帮我们创建表 --> <property name="hibernate.hbm2ddl.auto">update</property> <!--配置数据库的方言 例如:分页的话关键字:limit只在mysql中用 在oracle中实现分页用rowrun 让hibernate框架中识别特定的语句 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
第三部分:把映射文件放到核心配置文件中
<!-- 第三部分:把映射文件放到核心配置文件中(必须) resource:为映射配置文件的路径 --> <mapping resource="cn/itcast/entity/User.hbm.xml"/> </session-factory> </hibernate-configuration>