Hibernate笔记(一)

1. 使用Hibernate 导出数据库表

(ExportDB.java 工具类)

/**

 * 使用hibernate导出数据库(由modlehibernate配置文件生成数据库表),但要先有数据库

 */

package com.zoukang.usermgr.util;

 

import org.hibernate.cfg.Configuration;

import org.hibernate.tool.hbm2ddl.SchemaExport;

 

public class ExportDB {

    public static void main(String[] args) {

       // 读取hbiernate.cfg,xml文件

       Configuration cfg = new Configuration().configure();

       // 创建SchemaExport

       SchemaExport export = new SchemaExport(cfg);

       export.create(true, true);

    }

}

 

2. 采用编程式异常:

1.getCurrensSession()和openSession()的区别?

    *采用getCurrentSession()方法创建的session会绑定到当前线程中而

     采用openSession()的方法创建的session不会绑定到当前线程中

    *采用getCurrentSession()创建的session会在commintrollback后自动关闭

    而采用openSession()方法创建的session必须手动关闭

2.使用getCurrentSEssion(0必须在hibernate.cfg.xml文件中进行配置:

    *如果采用的是本地事务(JDBC事务)

    <property name="hibernate.current_session_cuntext_class">thread</property>

    *如果采用的是全局事务(JTA事务)

    <property name="hibernate.current_session_context_class">jta</property>

 

 

3.采用声明式事务:

a.声明式事务的配置

         * 配置 SessionFactory

         * 配置事务管理器

         * 事务传播特性

         * 哪些类哪些方法使用事务

 b.编写业务逻辑方法

         *

 

4。Hibernate自带的分页机制是什么?如果不使用Hibernate自带的分页,则采用什么方式分页?

    1、hibernate自带的分页机制:获得Session对象后,从Session中获得Query对象。用Query.setFirstResult():设置要显示的第一行数据,

       Query.setMaxResults():设置要显示的最后一行数据。

    2、不使用hibernate自带的分页,可采用sql语句分页,

       如:5:为每页显示的记录,2为当前页: select * top 5 from table where tabId not in (select tabId top (2-1)*5 from table);

5。Hibernate核心接口:

  Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。

  ·Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。

  ·SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

  ·Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。

  ·Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。

  ·Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值