Hibernate简单配置及应用案例

一、导入jar包 ( 以Hibernate 3.2.5 为例 需要导入以下jar包 )

hibernate3.jar , antlr.jar , cglib.jar , asm.jar , commons-collections.jar ,commons-logging.jar , jta.jar , dom4j.jar

二、添加配置文件 hibernate.cfg.xml或者hibernate.properties,
这两个文件的作用一样,提供一个即可,推荐XML格式。
配置如下(以oracle为例):

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>

        <!-- Oracle10g数据库方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>

        <!-- 连接数据库驱动 -->
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

        <!-- 登录数据库用户名 -->
        <property name="hibernate.connection.username">scott</property>

        <!-- 登录数据库密码 -->
        <property name="hibernate.connection.password">tiger</property>

        <!-- 连接数据库的url-->
        <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>

        <!-- 是否在控制台显示SQL语句 -->
        <property name="hibernate.show_sql">true</property>

        <!-- 格式良好的显示SQL语句 -->
        <property name="hibernate.format_sql">true</property>

        <!-- 每次生成DDL语句,create表示每次都创建表,一般使用update修改表,使用update如果表不存在则创建表-->
        <property name="hibernate.hbm2ddl.auto">update</property>

        <!-- 加载映射文件填持久化类的映射文件路径如:bean/Dept.hbm.xm -->
        <mapping resource="bean/Dept.hbm.xm"  />

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

三、添加实体类和映射文件
注意:命名格式为 对应的类名.hbm.xml 例如:Dept.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指定类名(类的全路径包括包名),
         table指定表名,该类在数据库中的表名,例如:T_DEPT -->
    <class name="bean.Dept" table="T_DEPT" >

        <!-- 用来定义表的主键,name表示,该类中属性名,例如:deptno 
            column表示,该属性在数据库表中的列名 例如:DEPTNO
            type表示,对应的数据类型,例如:int    -->
        <id name="deptno" column="DEPTNO" type="int" >      

            <!-- 主键生成策略,increment表示由hibernate生成的自增主键-->
            <generator class="increment"></generator>

        </id>

        <!-- 映射列,name表示,该类中属性名,例如:dname,
            column表示,该属性在数据库表中的列名,例如:DNAME
            type表示,对应的数据类型,例如:string,
            not-null="true" 表示该列在数据库中不能非空 
            length="30" 表示该列在数据库中的长度 -->
        <property name="dname" column="DNAME" type="string" not-null="true"  length="30" ></property>

    </class>

</hibernate-mapping>

操作代码解释

/*注意: 读取配置文件文件,这里只需要读取一个,你配置的是哪个文件就用哪种方式读取*/

 //表示读取hibernate.properties文件
Configuration cfg = new Configuration(); 

//表示读取hibernate.cfg.xml文件
//Configuration cfg  = new Configuration().configure(); 

//得到SessionFactory对象,相当于DataSource数据源
SessionFactory factory = cfg.buildSessionFactory();

//得到Session,相当于Connection连接
Session session = factory.openSession();

//开启事务 (如果是查询操作则无需使用事务)
Transaction trans = session.beginTransaction();

//此处则是要编写操作的程序,如保存操作
session.save(dept);

//提交事务(如果没有开启事务 则无需此操作)
trans.commit();

//关闭session
session.close()

下面是创建表并插入记录,演示代码:

package test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import bean.Dept;

public class Test1 {

    public static void main(String[] args) {
        Dept dept = new Dept();//创建对象
        dept.setDname("市场部");
        dept.setLoc("湖南长沙");

        //1.读取hibernate.properties文件
        Configuration cfg = new Configuration();

        //2.再读取下hibernate.cfg.xml
        //这里确保不知道配置文件是hibernate.properties
        //还是hibernate.cfg.xml,所以都读一下
        cfg = cfg.configure();

        //3.得到SessionFactory对象,相当于DataSource数据源
        SessionFactory factory=cfg.buildSessionFactory();

        //4.得到Session,相当于Connection连接
        Session session = factory.openSession();

        //5.开启事务
        Transaction trans = session.beginTransaction();

        session.save(dept);//6.保存

        trans.commit();//7.提交事务

        //8.关闭session
        session.close();

        //生成DDL语句 ( 下面代码是查看表的生成语句 )
        //SchemaExport export = new SchemaExport(cfg);

        //该方法第一个参数 表示是否在控制台显示建表语句
        //该方法第二个参数 表示是否建立数据库表
        //export.create(true, true);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值