zoukankan      html  css  js  c++  java
  • Hibernaate 详解

    hibernate.cfg.xml

    连接数据库:
    connection.username    数据库的名称。这是我自己的是luwei 
    connection.password     数据库的密码     luwei
    connection.driver_class   数据库连接驱动 com.mysql.jdbc.Driver
    connection.url              数据库连接的URL    jdbc:mysql:///luwei
    
    数据库方言:
    dialect            org.hibernate.dialect.MySQL5InnoDBDialect
    控制台打印SQL
    show_sql      true 
    格式化SQL(就是美化SQL)
    format_sql   true
    自动生成表
    hbm2ddl.auto      update  创建后就不会删除已有的行和列
                              create  每次都重新生成一个表
                               create-drop   sessionFactory 关闭后就删除
    指定程序需要的对象---关系映射文件
    <mapping resource="com/hibernate/helloworld/News.hbm.xml"/>

    2:每个类是什么含义?

     Configuration类:

             加载hibernate.cfg.xml文件。负责管理Hibernate的配置信息。  持久化类与数据表的映射关系。

    创建Configuration    :  Configuration configuration = new Configuration().configure();

    configure()方法的源码:

    public Configuration configure() throws HibernateException {
            configure( "/hibernate.cfg.xml" );
            return this;
        }

    SessionFactory接口:

     创建ServiceRegistry对象:

    //hibernate 的任何配置和服务都需要在该对象中注册后才能有效.
            ServiceRegistry serviceRegistry = 
                    new ServiceRegistryBuilder().applySettings(configuration.getProperties())
                                                .buildServiceRegistry();

    创建SessionFactory:

     SessionFactory  sessionFactory = configuration.buildSessionFactory(serviceRegistry);

    Session:

      Session 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate 运作的中心,所有持久化对象必须在 session 的管理下才可以进行持久化操作。

      此对象的生命周期很短。Session 对象有一个一级缓存,显式执行 flush 之前,所有的持久层操作的数据都缓存在 session 对象处。相当于 JDBC 中的 Connection。

    创建Session:

    Session session = sessionFactory.openSession();

    常用方法:

        取得持久化对象的方法   get()   load()

        保存。save()  更新。update()    saveOrUpdate()    删除。delete()

        开启事务:beginTransaction()

        管理session:isOpen()   flush()   clear()    evict()    close()

    Transaction(事务)

       代表一次原子操作,它具有数据库事务的概念。所有持久层都应该在事务管理下进行,即使是只读操作。
      创建:

    //3. 开启事务
    Transaction transaction = session.beginTransaction();

    事务常用的方法:

        commit():提交关联的session实例。

        rollback():撤销事务操作。

        wasCommitted():检查事务是否提交。

      

  • 相关阅读:
    我的作业
    代码练习
    prority_queue 的用法 实例
    最短路问题专题
    键值对 Intent
    P103 任意两点之间的最短路问题 Floyd_warshall算法
    第6届山东省ACM省赛总结
    HDU 3247 Resource Archiver[AC自动机+最短路+dp]
    POJ 2778 DNA Sequence [AC自动机 + 矩阵快速幂]
    HDU 2896 病毒侵袭 [AC自动机]
  • 原文地址:https://www.cnblogs.com/bulrush/p/7783229.html
Copyright © 2011-2022 走看看