Hibernate的基础入门

一、Hibernate的基本概念
(1)Hibernate是面向Java环境对象的关系数据库映射工具,把对象模型表示的对象映射到基于SQL模型的关系型数据库中去。
(2)Hibernate的优点:

  1. 可以以面向对象的方式操纵持久层对象。
  2. 可以执行性好。
  3. 实现了透明的持久化。

(3)Hibernate的缺点:

  1. 不适合批量操作
  2. 不适合对象之间关系特别复杂的应用
  3. 不适用于要使用特定的数据库优化机制

(4)下载
1、Hibernate官网地址:http://hibernate.org/,进入网站后,选择Hibernate ORM,在选择download,然后下载想要的版本即可。
2、添加类库: 将下载包中hibernate3.jarlib目录下bytecodejparequired目录中的jar包都拷贝到工程的lib目录下,可以放在一个hibernate-core文件夹里。另外,本次课程采用mysql数据库,因此,还需要将mysql数据库驱动(mysql-connector-java-5.1.7-bin.jar,网上下载)添加到lib目录下,可以放在一个mysql-jdbc文件夹里,还可以添加junit4.10.jar放在junit4.0文件夹里。

二、Java中应用Hibernate的步骤

  1. 创建Java项目
  2. 添加类库
  3. 配置hibernate配置文件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>
        <!-- 数据库驱动名称-->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <!-- 数据库连接-->
<property name="connection.url">jdbc:mysql://localhost:3306/xxx数据库名称?useUnicode=true&amp;characterEncoding=UTF-8<!-- 解决数据库中文编码错误--></property>
        <!-- 用户名-->
<property name="connection.username">root</property>
        <!-- 密码-->
<property name="connection.password">xxx</property>
        <!-- 方言,hibernate用于生成对应的sql语句 -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 是否在控制台打印sql语句-->
        <property name="show_sql">true</property>
        <!-- 是否需要hibernate根据映射文件来创建数据库表,可选的值有:
        create:每次加载hibernate都自动删除上一次表,再根据你的model类来重新生成新表
        create-drop:每次加载hibernate生成新表,但是session-factory一关闭,表自动删除
        update:第一次加载hibernate时根据model类会自动建表,以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行
        validate :每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。
        -->
        <property name="hbm2ddl.auto">update</property>
        <!-- 将映射文件添加进来-->
        <mapping resource="com/test/model/Students.hbm.xml" />
    </session-factory>
</hibernate-configuration>

。。。。。。。。。。。。。。。。。。。。。,。。
4. 编写Java类
5. 编写Java的映射文件xxx.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="com.test.model.Students" table="STUDENTS">
        <id name="id">
            <generator class="native"></generator>
            <!-- 表示主键生成策略-->
        </id>
        <property name="name" type="java.lang.String"></property>
        <property name="gender" type="java.lang.String"></property>
        <property name="age" type="java.lang.Integer"></property>
    </class>
</hibernate-mapping>`
  1. 将映射问件添加到配置文件里
    7. 开始使用hibernate,使用步骤:
    (1)启动hibernate
    configuration cfg=new configuration().configure();
    (2)创建SessionFactory工厂
    SessionFactory sessionFactory=cfg.buildSessionFactory();
    (3)打开一个Session
    Session session=sessionFactory.openSession();
    (4)开启一个事务
    Transaction tx=session.beginTransaction();

三、hibernate的持久化对象生命周期及使用要求

  1. 持久化对象的使用要求:
    1、提供一个无参数的构造函数
    2、提供一个对象标识。
    3、使用非final类。
    4、为对象的每个属性添加setter、getter方法。
  2. 持久化对象的生命周期:
    这里写图片描述

    Transient 瞬态:表示该实体对象在内存中是自由存在的,也就是说与数据库中的数据没有任何的关联,即该实体从未与任何持久化上下文联系过,没有持久化标识(相当于主键)。

    Persistent持久态:指该实体对象处于Hibernate框架所管理的状态,也就是说这个实体对象是与Session对象的实例相关的。处于持久态的实体对象的最大特征是对其所作的任何变更操作都将被Hibernate持久化到数据库中。

    Detached游历态:处于持久态的实体对象,当他不再与Session对象关联时,这个对象就变成了游离态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值