hibernate初次配置及测试

1.hibernate框架使用的准备工作

  1.1导入jar包

    

      

  1.2向eclipse导入dtd文件

    

    uri在dtd文件中有

    

 2.hibernate框架的配置

  2.1首先先创建一个实体类

package cn.domain.demo;

public class Users {
    private Integer id;
    private String username;
    private Integer age;
    private String gender;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    //用于测试
    @Override
    public String toString() {
        return "Users [id=" + id + ", username=" + username + ", age=" + age + ", gender=" + gender + "]";
    }
}

  2.2配置*.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">
    <!-- package如果配置在下面要用全包名的可以使用类名 -->
<hibernate-mapping package="cn.domain.demo">
    <!-- bean类与数据表关联 -->
    <class name="cn.domain.demo.Users" table="users">
        <!-- 主键映射 -->
        <id name="id" column="id">
            <!-- 主键生成策略 -->
            <generator class="native"/>
        </id>
        <!-- 其他键的映射 -->
        <property name="username" column="username"/>
        <property name="age" column="age"/>
        <property name="gender" column="gender"/>
    </class>
</hibernate-mapping>

  2.2配置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.dialect">org.hibernate.dialect.MySQLDialect</property>
    <!-- 配置数据库驱动 -->
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <!-- 配置数据库的URL -->
    <property name="hibernate.connection.url">jdbc:mysql:///test</property>
    <!-- 配置数据库的用户名 -->
    <property name="hibernate.connection.username">root</property>
    <!-- 配置数据库的密码 -->
    <property name="hibernate.connection.password">root</property>
    
    <!-- 可选配置 -->
    <!-- 配置是否显示SQL语句 -->
    <property name="hibernate.show_sql">true</property>
    <!-- 配置是否格式化SQL语句 -->
    <property name="hibernate.format_sql">true</property>
    <!-- 配置session绑定的对象  jta-->
    <property name="hibernate.current_session_context_class">thread</property>
<!-- 
    配置对数据库自动建表
    ## auto schema export 
    #hibernate.hbm2ddl.auto create-drop ---自动建表当程序结束时删除表,不留痕迹
    #hibernate.hbm2ddl.auto create        ---自动建表每次创建启动都会建表,覆盖数据
    #hibernate.hbm2ddl.auto update        ---自动建表没有表时新建,不会对原来的表结构进行修改(推荐)
    #hibernate.hbm2ddl.auto validate     ---不自动建表 -->
     <property name="hibernate.hbm2ddl.auto">update</property>
 
    <!-- 关联hbm文件 -->
    <mapping resource="cn/domain/demo/Users.hbm.xml"/>
</session-factory>
</hibernate-configuration>

3.测试配置的hibernate是否正确

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

import cn.domain.demo.Users;

public class Test {
    @org.junit.Test
    public void hibernateTest() {
        //创建configuration对象并加载hibernate.cfg.xml文件默认加载src下的文件
        Configuration config = new Configuration().configure();
        //获取session工厂,该对象属于重量级
        SessionFactory sessionFactory = config.buildSessionFactory();
        //获取session对象
        Session session = sessionFactory.getCurrentSession();
        //开启事务
        Transaction tx = session.beginTransaction();
        Users user = new Users();
        user.setUsername("zjj");
        user.setAge(18);
        user.setGender("男");
        //更新数据,将瞬时态转换为持久态
        session.save(user);
        //提交事务
        tx.commit();
        session.close();
        sessionFactory.close();
    }
}

  

原文地址:https://www.cnblogs.com/FlyBlueSky/p/9129466.html