Hibernate学习(一)-HelloWorld

此次第一次接触Hibernate,虽然之前学过其他的持久化框架,像MyBatis,我感觉面对两种相似功能的框架,总有第一感觉是两者有什么不同,现在先不细细讲解,毕竟才开始接触Hibernate,有些东西还不是很懂,今天就先说一下Hibernate的配置及简单事例。

这个就是ORM持久化映射

这里写图片描述

先说一下Hibernate的基本步骤:

安装Hibernate相关的zip文件,在help中install

1)创建Hibernate.cfg.xml文件

2)创建持久化类

3)编写关系对象映射文件 .hbm.xml文件

4)通过Hibernate API 编写访问数据库的代码

这里写图片描述

1.Hibernate.cfg.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
         <!-- 1. 配置数据库信息 -->


        <property name="connection.url">jdbc:mysql:///safety</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.username">root</property>
        <property name="connection.password">WXC196728</property>

        <!-- 方言(连接的数据库类型) -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 2. 其他配置 -->
        <!-- 显示生成的SQL语句 -->
        <property name="hibernate.show_sql">true</property>
        <!-- 是否对SQL语句进行格式化 -->
        <property name="format_sql">true</property>
        <!-- 制定自动生成数据表的策略 -->
        <property name="hibernate.hbm2ddl.auto">update</property>  
        <!-- 3. 导入映射文件 -->
        <mapping resource="com/hibernate/first/UserDatabase.hbm.xml" />
    </session-factory>
</hibernate-configuration>

2.持久化类

package com.hibernate.first;

import java.util.Date;

public class UserDatabase {

    private int ID;
    private String name;
    private String password;
    private Date dte;
    public int getID() {
        return ID;
    }
    public void setID(int iD) {
        ID = iD;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Date getDte() {
        return dte;
    }
    public void setDte(Date dte) {
        this.dte = dte;
    }
    public UserDatabase(String name, String password, Date dte) {
        super();
        this.name = name;
        this.password = password;
        this.dte = dte;
    }
    public UserDatabase() {
        super();
        // TODO Auto-generated constructor stub
    }
    @Override
    public String toString() {
        return "UserDatabase [ID=" + ID + ", name=" + name + ", password=" + password + ", dte=" + dte + "]";
    }




}

3.对象映射文件

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2018-1-2 10:45:22 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="com.hibernate.first.UserDatabase" table="UserTable">
        <id name="ID" type="int">
            <column name="ID" />
            <!-- 指定主键生成方式,native:使用数据库本地方式 -->
            <generator class="native" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="PASSWORD" />
        </property>
        <property name="dte" type="java.util.Date">
            <column name="DTE" />
        </property>
    </class>
</hibernate-mapping>

4.使用Hibernate API访问数据库

package com.hibernate.first;

import java.util.Date;

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

public class HibernateTest {

    @Test
    public void test() {

        //创建Sessionfactory对象
        SessionFactory sessionFactory=null;
        /*
         * 创建Configuration:对应Hibernate的基本信息和对象关系映射
        (Configuration是加载Hibernate.cfg.xml文件,包含.hbm.xml文件)
        */
        Configuration  configuration =  new Configuration().configure();

        //2)创建ServiceRegistry对象 Hibernate 4.x新添加的对象
        ServiceRegistry serviceRegistry=
                new ServiceRegistryBuilder().applySettings(configuration.getProperties())
                                                        .buildServiceRegistry();

        sessionFactory=configuration.buildSessionFactory(serviceRegistry);

        //2、创建Session对象
        Session session=sessionFactory.openSession();
        //3、开启事物
        Transaction transaction=session.beginTransaction();
        //执行保存操作
        UserDatabase userDatabase=new UserDatabase("qwe", "123", new Date());

        session.save(userDatabase);

        //提交事务
        transaction.commit();
        //关闭session
        session.close();
        //关闭sessionFactory
        sessionFactory.close();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值