Java框架学习之Hibernate入门

图片 3

Hibernate是一个开放源代码的靶子关系映射框架,它对JDBC举办了相当轻量级的目的封装,使得Java程序员可以从心所欲的行使对象编制程序思维来调节数据库。
Hibernate可以使用在别的利用JDBC的场合,不仅能够在Java的客商端程序使用,也得以在Servlet/JSP的Web应用中利用,最具革命意义的是,Hibernate能够在选择EJB的J2EE结构中代表CMP,达成多少悠久化的任务。

DBC:(Java Data Base Connectivity)java数据库接连

java.sql包提供JDBC
API,可通过它编写访谈数据库的次第代码.在那之中常用的接口和类包罗上边内容:

 

  • DriverManager:驱动程序微处理机,担当创制数据库连接
  • Connection:代表数据库连接
  • Statement:担负实践SQL语句
  • PreparedStatement:担负施行SQL语句,拥有预订义SQL语句的成效
  • ResultSet:代表SQL查询语句的询问结果集

图片 1

流程图:

图片 2

Hibernate(Java对象长久化技巧卡塔尔(قطر‎:

Hibernate是三个吐放源代码的对象关系映射框架,它对JDBC举行了相当的轻量级的指标封装,使得java程序猿能够轻便的应用对象编制程序思维来支配数据库。
Hibernate能够利用在别的利用JDBC之处,不仅可以在Java的顾客端程序使用,也足以在Servlet/JSP的Web应用中行使,最具革命意义的是,Hibernate能够在动用EJB的J2EE构造中代表CMP,实现数据长久化的沉重。

主干接口

Hibernate的主干接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。那6个着力接口在别的付出中都会用到。通过那么些接口,不仅可以够对长久化对象举行存取,还是能够够进行作业调整。下边前境遇那6个大旨接口分别加以介绍。

Hibernate的骨干接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。

Session接口:担任实施被持久化对象的CRUD操作(CRUD的职务是到位与数据库的调换,包括了不少周围的SQL语句。卡塔尔国。但要求静心的是Session对象是非线程安全的。相同的时间,Hibernate的session分裂于JSP应用中的HttpSession。这里当使用session那几个术语时,其实指的是Hibernate中的session,而从此会将HttpSession对象称为客户session。

SessionFactory接口:肩负早先化Hibernate。它充作数据存款和储蓄源的代理,并担负创立Session对象。这里运用了工厂格局。要求介怀的是SessionFactory并不是轻量级的,因为相仿处境下,一个等级次序平时只必要两个SessionFactory就够,当供给操作八个数据库时,可感觉各个数据库钦命叁个SessionFactory。

Transaction接口:是一个可选的API,能够选拔不选用那些接口,取代他的是Hibernate
的设计者自个儿写的尾巴部分事务管理代码。 Transaction
接口是对实际业务达成的三个抽象,这个达成包涵JDBC的政工、JTA
中的UserTransaction、以致足以是CORBA
事务。之所以这么设计是能让开垦者能够利用二个联完成学业务的操作分界面,使得本人的品种能够在差别的条件和容器之间方便地移值。

Query接口:令你方便地对数据库及悠久对象开展询问,它可以有二种表达方式:HQL语言或本地数据库的SQL语句。Query平时被用来绑定查询参数、节制查询记录数据,并最后推行查询操作。

Criteria接口:与Query接口特别相近,允许创立并举办面向对象的基准查询。值得注意的是Query接口也是轻量级的,它不可能在Session之外使用。

Configuration 接口:功效是对Hibernate
实行安插,以致对它进行运营。在Hibernate 的开发银行进度中,Configuration
类的实例首先定位映射文书档案的岗位,读取这个铺排,然后创设三个SessionFactory对象。即使Configuration
接口在整整Hibernate 项目中只扮演着二个非常的小的角色,但它是开发银行hibernate
时所蒙受的每二个目的。

 

更多参谋和学习在yun2win立刻通信云:www.yun2win.com

Session

Session接口担负实行被长久化对象的CRUD操作(CRUD的职务是变成与数据库的沟通,包罗了不菲不足为道的SQL语句。State of Qatar。但须求当心的是Session对象是非线程安全的。相同的时间,Hibernate的session不一样于JSP应用中的HttpSession。这里当使用session那一个术语时,其实指的是Hibernate中的session,而自此会将HttpSession对象称为客户session。

SessionFactory

SessionFactory接口担任起头化Hibernate。它当做数据存款和储蓄源的代办,并担负创立Session对象。这里运用了工厂情势。需求注意的是SessionFactory而不是轻量级的,因为平常景观下,三个品类平日只须要叁个SessionFactory就够,当须要操作多个数据库时,可以为种种数据库钦命五个SessionFactory。

Transaction

Transaction
接口是三个可选的API,能够选拔不选取这么些接口,代替他的是Hibernate
的设计者自个儿写的最底层事务管理代码。 Transaction
接口是对实际业务完毕的二个浮泛,这个完结包涵JDBC的事情、JTA
中的UserTransaction、以至足以是CORBA
事务。之所以那样设计是能让开拓者能够运用一个联结业务的操作界面,使得本身的品种可以在分歧的蒙受和容器之间方便地移植。

Query

Query接口令你方便地对数据库及持久对象开展询问,它能够有二种表明格局:HQL语言或地方数据库的SQL语句。Query平日被用来绑定查询参数、限定查询记录数据,并最后实践查询操作。

Criteria

Criteria接口与Query接口特别雷同,允许创立并进行面向对象的尺度查询。值得注意的是Criteria接口也是轻量级的,它不能够在Session之外使用。

Configuration

Configuration 接口的法力是对Hibernate
进行安顿,以致对它进行运营。在Hibernate 的启航进程中,Configuration
类的实例首先定位映射文书档案的职位,读取这一个布置,然后创设多个SessionFactory对象。固然Configuration
接口在总体Hibernate 项目中只扮演着贰个超小的角色,但它是运营hibernate
时所蒙受的每叁个对象。

hibernate的优点

  • Hibernate会管理映射的Java类来利用XML文件,数据库表和无需编写任何一行代码。
  • 提供了简易的API,用于间接从数据库中存款和储蓄和检索Java对象。
  • 假若有转移,数据库或其余表中的那么只供给更改XML文件的性子。
  • 空泛掉不纯熟的SQL类型,并提供我们缓和纯熟的Java对象。
  • Hibernate不供给应用服务器实行操作。
  • 决定数据库对象的树大根深关系。
  • 尽量收缩与智能读取计谋数据库的访谈。
  • 提供数据的简短询问。

hibernate配置

先下载hibernate所需包,笔者下载的是hibernate-distribution-3.6.4.Final,解压缩下载的文本,目录结构如下所示。

图片 3

下一场将lib中的包拷贝到品种中就能够。

与此同时也能够行使myeclipse直接加载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">
<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    <session-factory>
        <property name="dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
        <property name="connection.url">
            jdbc:mysql://127.0.0.1:3306/java_web
        </property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <property name="myeclipse.connection.profile">Test</property>

        <property name="hbm2ddl.auto">update</property>
        <property name="hibernate.connection.autocommit">true</property>
        <property name="show_sql">true</property>
        <property name="defaultAutoCommit">true</property>
        <property name="maxActive">10000</property>
        <property name="maxIdle">50</property>
        <property name="maxWait">3000</property>
        <property name="initialSize">10</property>
        <property name="minIdle">20</property>
        <property name="dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
    </session-factory>

</hibernate-configuration>
You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图