Hibernate简介

Posted RocketMan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate简介相关的知识,希望对你有一定的参考价值。

1、ORM(Object/Relationship Mapping)对象/关系 映射


 2、那么些sql有啥不好的呢?

  1、不同的数据库使用的sql语句不同,比如plsql(oracle)、tlsql(微软)

  2、相同的功能在不同的数据库中有不同的实现方式,比如分页功能

  3、程序过分的依赖sql语句会使程序的可移植行不好


 3、什么是Hibernate?

  Hibernate是Java领域的一款ORM框架

  Hibernate对JDBC进行了轻量的对象封装  

  Hibernate处于业务逻辑层和数据存储层之间,称为持久化层


 4、其他的一些ORM框架?

  Mybatis、Toplink、EJB


 5、使用Hibernate所用的工具?

  eclipse+Hibernate Tools for Eclipse Plugins(JBoss Tools中的一个)

  或者Myeclipse


 6、使用Hibernate的步骤?

  创建Hibernate的配置文件

  创建持久化类

  创建对象-关系映射

  通过Hibernate API编写访问数据库的代码


 7、使用Hibernate需要的jar包?

  hibernate的jar包:hibernate-relase-.../lib/required

  mysql数据库jdbc驱动的jar包:mysql-connector-java.jar

  JUnit的jar包:Junit-....jar  

  在eclipse中添加这3个User  Librarles用户类库,导入到项目中(Myeclipse可不用)


8、Hibernate配置文件

  <?xml version=‘1.0‘ encoding=‘gb2312‘?> 标准的XML文件的起始行,version=‘1.0‘表明XML的版本,encoding=‘gb2312‘表明XML文件的编码方式

  <!DOCTYPE hibernate-configuration PUBLIC 

  "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 

  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 表明解析本XML文件的DTD文档位置

  <hibernate-configuration> 声明Hibernate配置文件的开始

    <session-factory>    表明以下的配置是针对session-factory配置的,SessionFactory是Hibernate中的一个类,保存HIbernate的配置信息,以及对Session的操作

      <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver </property> 配置数据库的驱动程序

      <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate</hibernate>设置数据库的连接url

        (?userUnicode=ture&amp;characterEncodieng=utf-8) 

      <property name="hibernate.connection.username">root </property>连接数据库是用户名

      <property name="hibernate.connection.password">123456 </property>连接数据库是密码

      

      <property name="hibernate.connection.pool.size">20 </property> 数据库连接池的大小

      <property name="hibernate.show_sql">true </property> 程序运行时可以在Eclipse的控制台显示Hibernate的执行Sql语句

      <property name="hibernate.format_sql">true(update)</property> sql语句的格式

      <property name="hibernate.hbm2ddl.auto">create </property> java代码对数据库表修改

                 <property name="jdbc.fetch_size">50 </property> Hibernate每次从数据库中取出并放到JDBC的Statement中的记录条数

      <property name="jdbc.batch_size">23 </property> Hibernate批量插入,删除和更新时每次操作的记录数

      <property name="jdbc.use_scrollable_resultset">false </property> t是否允许Hibernate用JDBC的可滚动的结果集

      <property name="Connection.useUnicode">true </property> 连接数据库时是否使用Unicode编码

      <property name="connection.characterEncoding">gbk </property>  连接数据库时数据的传输字符集编码方式  

            <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect </property> Hibernate使用的数据库方言   

 

              <mapping resource="org/mxg/UserInfo.hbm.xml"> 指定映射文件

    </session-factory>

  </hibernate-configuration>


 9、持久化类的写法

  属性私有

  属性提供setter和getter放法

  提供不带参数的构造方法

  即封装


10、对象关系映射文件

  对象属性名映射数据表的字段


11、Junit测试

  @Before 初始方法

    Configuration cfg = new Configuration().configure();  创建配置对象

    ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()  .applySettings(configuration.getProperties()) .buildServiceRegistry();创建服务注册对象

    SessionFactory sf=cfg.buildSessionFactory(serviceRegistry); 创建Session工厂

    Session sess = sf.openSession(); 创建Session对象,打开对话

    Transaction tx = sess.beginTransaction(); 开启事务

  @Test 测试方法

    sess进行数据操作

  @After 销毁方法

    tx.commit() 事务提交

    sess.commit() session会话关闭

    sf.commit() session工厂关闭

 

以上是关于Hibernate简介的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate简介与实例

Hibernate简介

Hibernate简介

hibernate学习笔记之一 hibernate简介

hibernate简介

Hibernate ORM框架——第一章:Hibernate简介与操作基础