Hibernate 入门配置

本文介绍了如何搭建Hibernate开发环境,包括必需的jar包导入、log4j和数据库驱动配置等步骤,并提供了核心配置文件hibernate.cfg.xml及实体映射文件User.hbm.xml的详细示例,最后展示了增删改查的测试代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境搭建

  1. hibernate环境下载https://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/hibernate-release-5.0.7.Final.zip/download
  2. 将必须的jar包导入到项目中 将目录 hibernate-release-5.0.7.Final\lib\required 下的所有jar包导入到项目中,导入log4j相关的jar包,以及数据库驱动包
  3. 编写配置文件
    a. 编写核心配置文件 hibernate.cfg.xml
    b.编写映射配置文件 实体名.hbm.xml

配置文件编写

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>
            <!-- 必须的配置 -->
            <!-- 数据库驱动文件 -->
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <!-- 数据库访问地址 -->
            <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
            <!-- 数据库用户名 -->
            <property name="hibernate.connection.username">root</property>
            <!-- 数据库密码 -->
            <property name="hibernate.connection.password">root</property>
            <!-- 方言 操作数据库的语言 -->
            <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

            <!-- 非必须的配置项 -->
            <!-- 显示SQL语句 -->
            <property name="hibernate.show_sql">true</property>
            <!-- 格式化SQL -->
            <property name="hibernate.format_sql">true</property>
            <!-- 通过映射转成DDL语句 -->
            <property name="hibernate.hbm2ddl.auto">update</property>

            <!-- 把映射文件引进来 -->
            <mapping resource="cn/wcl/pojo/User.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>
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>
         <!-- 配置javabean和数据库表的映射
            class
                name:表示类的全限定名(包名+类型)
                table:表名
         -->
        <class name="cn.wcl.pojo.User" table="user">
                <!-- 配置主键
                    id 
                        name:javabean的属性名
                        column:数据库的字段名
                 -->
            <id name="uid" column="uid">
            <!-- 主键生成策略   native:采取本地数据库的一个主键生成策略  mysql:自增长    oracle:序列 sequence -->
                <generator class="native"></generator>
            </id>
            <!-- 配置普通属性 -->
            <property name="uname" column="uname"></property>
            <property name="ugender" column="ugender"></property>
            <property name="upwd" column="upwd"></property>
        </class>
    </hibernate-mapping>
    测试代码
    public class Demo_01 {

    /**
     * 增加
     */
    @Test
    public void run1(){
        //1.读取hibernate配置文件
        Configuration cfg = new Configuration();
        //读取配置文件
        cfg.configure();
        //2.获得SessionFactory工厂
        SessionFactory factory = cfg.buildSessionFactory();
        //3.获得Session对象
        Session session = factory.openSession();
        //4.开启事务
        Transaction ts = session.beginTransaction();

        User user = new User();
        user.setUname("jack");
        user.setUgender("男");
        user.setUpwd("123456");

        //保存
        Serializable id = session.save(user);
        System.out.println(id);

        //5.提交事务
        ts.commit();
        //6.释放资源
        session.close();
        factory.close();
    }

    /**
     * 查询get()/load()
     */
    @Test
    public void run2(){
        //1.读取hibernate配置文件
        Configuration cfg = new Configuration();
        //读取配置文件
        cfg.configure();
        //2.获得SessionFactory工厂
        SessionFactory factory = cfg.buildSessionFactory();
        //3.获得Session对象
        Session session = factory.openSession();
        //4.开启事务
        Transaction ts = session.beginTransaction();

        User user = session.get(User.class, 1L);
        System.out.println(user);
        //5.提交事务
        ts.commit();
        //6.释放资源
        session.close();
        factory.close();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值