Hibernate框架使用之环境搭建

第一步:引入所需的jar

第二步:创建实体类,配置实体类与数据表的映射关系

创建实体类

User.java

package cn.hao.entity;

public class User {

    /* hibernate要求实体类有一个唯一标识的属性 */
    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:使用xml配置文件完成

User.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>
    <!-- 1、配置类与表的映射
        class标签
        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核心配置文件

核心配置文件的位置和名称必须是:src下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>
        <!-- 第一部分:配置数据库信息(必须的) -->
        <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">mysqladmin</property>
        
        <!-- 第二部分:配置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>
        <!-- 配置数据库方言 
            在mysql里面实现分页 关键字limit,该关键字只能在mysql中使用
            而在Oracle数据库使用rownum关键实现分页操作
            让hibernate框架识别不同数据库的语句
        -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        
        <!-- 第三那部分:把映射文件放到核心配置文件中(必须的) -->
        <mapping resource="cn/itcast/entity/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

以上就完成的Hibernate框架基本使用环境的搭建。

 

测试代码

package cn.hao.hibernatetest;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import cn.hao.entity.User;

public class HibernateDemo {
    @Test
    public void testAdd() {
        // 第一步 加载hibernate核心配置文件
        // 到src下面找到名称为hibernate.cfg.xml
        // 在hibernate里面封装对象
        Configuration cfg = new Configuration();
        cfg.configure();
        
        // 第二步 创建SessionFactory对象
        // 读取hibernate核心配置文件内容,创建SessionFactory
        // 在该过程中,根据映射关系,创建数据表
        SessionFactory sessionFactory = cfg.buildSessionFactory();
        
        // 第三步 使用SessionFactory创建Session
        // 类似于连接
        Session session = sessionFactory.openSession();
        
        // 第四步 开启事务
        Transaction tx = session.beginTransaction();
        
        // 第五步 写具体crud操作
        User user = new User();
        user.setUsername("小明");
        user.setPassword("131415");
        user.setAddress("上海");
        // 调用session的方法实现添加
        session.save(user);
        
        // 第六步 提交事务
        tx.commit();
        
        // 第七步 关闭资源
        session.close();
        sessionFactory.close();
    }
}

 

posted @ 2018-04-27 18:59  chenghaow  阅读(254)  评论(0编辑  收藏  举报