• 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.cfg.xml)

      创建持久化类(实体类)

      创建对象-关系映射(将映射文件添加到配置文件中)

      通过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工厂关闭

  • 相关阅读:
    gym 101064 G.The Declaration of Independence (主席树)
    hdu 4348 To the moon (主席树 区间更新)
    bzoj 4552 [Tjoi2016&Heoi2016]排序 (二分答案 线段树)
    ACM-ICPC 2018 南京赛区网络预赛 G Lpl and Energy-saving Lamps(线段树)
    hdu 4417 Super Mario (主席树)
    poj 2236 Wireless Network (并查集)
    查看 scala 中的变量数据类型
    彻底搞定Maven
    Spark :【error】System memory 259522560 must be at least 471859200 Error initializing SparkContext.
    ip地址、子网掩码、网关与网卡、DNS的区别及用处
  • 原文地址:https://www.cnblogs.com/RocketMan/p/5270939.html
Copyright © 2020-2023  润新知