一、配置文件详解

  1、映射文件详解

    1、映射配置文件的位置和名称没有限制。

      -建议:位置:和实体类放在统一目录下。

          名称:实体类名称.hbm.xml。

       

    2、在映射配置文件中,标签内的name属性的值要和实体内的属性对应。

      (1)class标签内的name的值为实体类的全路径。

      (2)property标签内的name的值为实体类的属性。

      (3)id标签内的name的值为实体类的属性。

      (4)id和property标签内的column属性可以不写。

      (5)id和property标签内有一个type属性,可以指定生成数据表的字段的类型,

         一般类型由Hibernate自动推断,不设置该属性

      

  2、核心配置文件详解

      1、核心配置文件的位置和名称都有要求

        位置:必须要在src目录下

        名称:必须是hibernate.cfg.xml。

        

      2、配置内容必须要写在<SessionFactory></SessionFactory>标签内。

        

      3、配置内容有三部分组成

        第一部分:数据库配置部分,此部分是必须要配置的。

        第二部分:hibernate配置部分,该部分不是必须的,可以不配置

        第三部分:加载映射文件部分,该部分也是必须的,因为hibernate只会加载核心配置文件,

              所有必须要通过这种方式引入映射文件,才能加载。

        

二、核心API详解

    1、Configuration

      该API主要用来加载配置文件。在使用Hibernate时,首先要创建Configuration对象,该对象用来启动、加载和管理Hibernate的配置文件信息。

      该实例的创建方法有以下几种:

       第一种:用于加载位置在src目录下,并且名字为hibernate.cfg.xml的配置文件。  

Configuration cfg = new Configuration().configure()

      第二种:加载指定目录下的核心配置文件

Configuration cfg = new Configuration().configure("xml 文件的位置")

      第三种:加载映射文件 

    Configuration cfg = new Configuration().configure("xml 文件的位置");
cfg.addResource("com/jack/entity/User.hbm.xml");

    2、SessionFactory

        该接口负载Hibernate的初始化和Session对象的创建。

        创建SessionFactory时会根据核心配置文件中数据库的配置和映射文件中的映射关系去数据库中吧数据表创建出来。

        SessionFactory的特点:1、它是线程安全的,它的一个实例可以供多个线程共享。

                     2、它是重量级的,不能随意的创建或销毁它的实例。

                    3、在创建过程中特别的耗费资源。

        由于以上的特点,因此在一个项目中只需要一个SessionFactory对象即可,所以在Hibernate项目中一般抽取一个工具类来获取该实例。

        工具类代码:

public class HibernateUtils {

    private static Configuration configuration= null;
private static SessionFactory sessionFactory = null; /**
* 静态代码块,在类加载时只会执行一次,这样就可以保证只有一个SessionFactory对象
*/
static{
configuration = new Configuration();
configuration.configure();
sessionFactory = configuration.buildSessionFactory();
} /**
* 提供一个返回SessionFactory对象的方法
*/ public static SessionFactory getFactory(){
return sessionFactory;
}
}

    3、Session 

        1、session类似于JDBC中的Connection对象。

        2、session是线程不安全的,一个session对象只能供一个线程使用。

        3、session提供了大量的常用操作方法。

        • save()、update()和saveOrUpdate()方法:用于增加和修改对象。
        • delete()方法:用于删除方法。
        • get()和load()方法:用于根据主键查询。
        • createQuery()和createSQLQuery()方法:用于数据库操作对象
        • createCriteria()方法:用于条件查询。  

        4、获取该实例方法:

          第一种:   

Session  session = sessionFactory.openSession();

          第二种:

Session  session = sessionFactory.getCurrentSession();

          两种方法的区别:使用第一种方法获取该实例时,SessionFactory会直接创建一个Session对象,在操作完毕后,必须要通过调用Session对象

                  的close()方法来手动关闭该实例。

                  使用第二种方法创建的实例会被绑定到当前线程中,在提交或回滚操作时会自动关闭。

    4、Transaction

        Transaction接口主要用于事物管理。

        1、获取实例方法

Transaction tx = session.beginTransaction();

        2、提供的方法

          commit()方法:用于提交相关联的Session实例。

          rollback()方法:用于撤销事物。

三、编写配置文件时没有提示问题。

    在编写配置文件时如果电脑不能连接外网,则没有提示。解决方式如下.

      1、编写映射文件处理方法

        (1)去网站http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd下载hibernate-mapping-3.0.dtd文件。

        (2)打开该文件,拷贝如下代码

                  

        (3)在eclipse中打开window--->preference窗口,搜索XML Catalog,进行如下配置

          

    2、编写核心配置文件处理方法

      (1)去网站http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd下载hibernate-configuration-3.0.dtd文件。

      (2)打开hibernate-configuration-3.0.dtd文件拷贝如下代码

        

      (3)在eclipse中打开window--->preference窗口,搜索XML Catalog,进行如下配置

        

          

最新文章

  1. phabricator在mac上的搭建
  2. cf593c
  3. minigui编译
  4. IIS 之 托管管道模式
  5. paip. mysql如何临时 暂时 禁用 关闭 触发器
  6. 小A老空调需求管理小记
  7. Away3D带你360&#176;漫游全景影像
  8. 使用 Visual C# .NET 生成 Office COM 外接程序
  9. Sublime Text快捷键:
  10. 安卓TV开发(五) 移动智能终端UI之实现主流TV焦点可控UI
  11. java 生产者消费者简单实现demo
  12. VS2017无法发现单元测试,不能运行单元测试的解决方案
  13. Perl获取主机名、用户、组、网络信息
  14. Vue学习5:条件渲染
  15. MySQL EXPLAIN 命令: 查看查询执行计划
  16. poj1743 Musical Theme【后缀数组】【二分】
  17. 团队项目:二次开发--v.2.1--软件工程
  18. php基础:面向对象
  19. java集合:常用集合的数据结构
  20. scrapyd 参考(https://www.jianshu.com/p/2a189127901a)

热门文章

  1. Android-ContentProvider读取/新增/操作系统联系人数据
  2. 【MVC】分布视图带参数
  3. windows 多个人同时远程同一台电脑
  4. 理解图像Garbor和HOG特征的提取方法及实例应用
  5. PHP删除一个目录下的所有文件,不删除文件夹
  6. ArchLinux 下文件描述符
  7. ARC初步介绍
  8. 关于OC中的block自己的一些理解(二)
  9. 【随记】SQL备份一张表的数据
  10. 「美团 CodeM 复赛」城市网络