Hibernate快速入门—新手Hibernate详细配置步骤介绍

一、准备jar包

创建好javaweb以后在lib下复制准备好了的Hibernate的jar包,会自动导入Web App Libraries下
下载jar包地址:http://hibernate.org/orm/
这里写图片描述

二、创建User实体类:在com.hibernate包下

package com.hibernate;

/**
 * 实体User
 */
public class User {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "[User: id=" + id + ", name=" + name + "]";
    }

}

三、创建数据库

DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

四、创建主配置文件:hibernate.cfg.xml

一般涉及到三个方面的配置:
1.基于JDBC数据库的属性配置,如:url、driver、username等配置
2.数据库方言dialect配置(dialect:即理解为我们是需要Orcale、Sqlserver还是Mysql的SQL语言)
3.其他配置:如hibernate.show_sql是否以日志的方式跟踪sql语句
4.数据库实体类映射文件mapper的导入:是一种ORM的实现
具体代码如下:

<?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 name="myConfig">
        <!-- 1.方言(连接的数据库类型) -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 2. 配置数据库信息 -->
        <property name="connection.url">jdbc:mysql:3308//hibernate</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.username">root</property>
        <property name="connection.password">1234</property>

        <!-- 3. 其他配置 -->
        <!-- 显示生成的SQL语句 以日志的形式跟踪数据sql语句-->
        <property name="hibernate.show_sql">true</property>

        <!-- 4. 导入映射文件 -->
        <mapping resource="com/hibernate/User.hbm.xml" />

    </session-factory>
</hibernate-configuration>

五、创建实体数据库映射文件user.hbm.xml(一般格式都是:实体类xxx.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">
<!--对象-关系映射文件xxx.xml:要与User类在同一个包com.hibernate下  -->
<!--JavaBean所在包的路径  -->
<hibernate-mapping package="com.hibernate">
    <!--
        <class name="JavaBean名称" table="对应数据库中的表名">
    -->
    <class name="User" table="t_user">
         <!-- 
            1.<id name="数据库中主键在JavaBean中的属性名称" column="数据库中主键名" type="数据类型"> 
            2.id标签必须在property标签前
        -->
        <id name="id" type="int" column="id">
            <!--
                1.<generator class="映射方式"/>节点指定Hibernate向数据库插入数据时主键的生成方式  
                2.映射方式种类:
                        native:由数据库对id赋值,如:id设置为identity
                        identity:采用数据库提供的主键生成机制
                        increment:主键按数值顺序递增
                        ......
            -->
            <generator class="native"/>
        </id>
        <!--  <property name="数据库中字段在JavaBean中的属性名称" column="数据库中的字段名" type="数据类型"/>  -->
        <property name="name" type="string" column="name" />
    </class>
</hibernate-mapping>

六、创建App测试java文件
向空的数据库表t_user中加入“张三记录”

 user.setName("张三");
package com.hibernate;

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

public class App {

    private static SessionFactory sessionFactory;

    static {
        Configuration cfg = new Configuration();
        cfg.configure("hibernate.cfg.xml"); // 读取指定的主配置文件
        sessionFactory = cfg.buildSessionFactory(); // 根据配置生成Session工厂
    }

    @Test
    public void testSave() {
        User user = new User();
        user.setName("张三");

        // 保存
        Session session = sessionFactory.openSession(); // 打开一个新的Session
        Transaction tx = session.beginTransaction(); // 开启事务

        session.save(user);

        tx.commit(); // 提交事务
        session.close(); // 关闭Session,释放资源
    }

    @Test
    public void testGet() {
        Session session = sessionFactory.openSession();
        Transaction tx = session.beginTransaction();

        User user = (User) session.get(User.class, 1); // 获取最终的User实体类
        System.out.println(user);

        tx.commit();
        session.close();
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值