hibernate 自学 -- day01

前言

hibernate是一个轻量级ORM框架,用来实现java对象和表之间的映射,除此之外它还提供数据查询和获取数据的方法。

搭建步骤:

1.在数据库中建立一张表,比如说tb_user

2.配置 hibernate.cfg.xml ,放在src根目录下,主要包括

        --|  四个DB方面的连接

        --|  可选配置

        --|  mapping resources 引用 xxx.hbm.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>
        <!-- DB配置 -->
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
        <property name="connection.username">test</property>
        <property name="connection.password">test</property>
        <!-- 可选配置 -->
        <property name="connection.pool_size">2</property>
        <property name="dialect">org.hibernate.dialect.OracleDialect</property>
        <property name="show_sql">true</property>
        <!--引用映射文件-->
        <mapping resource="cn/javass/h4/hello/UserModel.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

3.配置xxx.hbm.xml,主要包括

            --| 表和类的映射

            --| 主键映射

            --| 类的属性和DB中字段的映射

            --| 关系映射

例子 UserModel.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    '-//Hibernate/Hibernate Mapping DTD 3.0//EN'
    'http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd'>
<hibernate-mapping>
    <class name="cn.javass.h4.hello.UserModel" table="tbl_user">
        <id name="uuid">
            <generator class="assigned"/>
        </id>
        <property name=“userId”></property>
        <property name=“name”></property>
        <property name="age"></property>
    </class>
</hibernate-mapping>

4.客户端文件

package cn.javass.h4.hello;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class Client {
    public static void main(String[] args) {
        SessionFactory sf = new Configuration().configure().buildSessionFactory();//读取hibernate.cfg.xml,创建Session工厂,是线程安全的。
        Session s = null;
        Transaction t = null;
        try{
            //准备数据
            UserModel um = new UserModel();
            um.setUuid("1");
            um.setUserId("id1");
            um.setName("name1");
            um.setAge(1);
            s = sf.openSession(); //打开session
            t = s.beginTransaction(); //开启事务
            s.save(um);
            t.commit();
        }catch(Exception err){
            t.rollback();
            err.printStackTrace();
        }finally{
            s.close(); //关闭sess
        }
    }
}

直接在Elipse里面运行Client文件即可,运行结束,你将会看到在console输出:“Hibernate: insert into tbl_user (userId, name, age, uuid) values(?, ?, ?, ?)”,打开数据库的数据表,你会看到一条值已经加入了。

说明:

1 : SessionFactory sf = new Configuration().configure().buildSessionFactory(); 这句话的意思是读取hibernate.cfg.xml,创建Session工厂,是线程安全的。默认是”hibernate.cfg.xml”,不用写出来,如果文件名不是”hibernate.cfg.xml”,那么需要显式指定,如下:
     SessionFactory sf = new Configuration().configure( "javass.cfg.xml").buildSessionFactory();
2 : Session是应用程序主要使用的Hibernate接口,约相当于JDBC的Connection+Statement/PreparedStatement的功能,是线程不安全的
3 : 在Hibernate4里面,已经不推荐使用Configuration类了,而改为使用ServiceRegistryBuilder来代替,新的写法大致如下:
    
4:这里使用的事务Transaction是Hibernate的Transaction,需要有,不能去掉。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值