一、配置文件详解

  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,进行如下配置

        

          

配置文件详解和核心api讲解的更多相关文章

  1. Hibernate_day01--Hibernate配置文件详解_核心api

    Hibernate映射配置文件(重点) 1 映射配置文件名称和位置没有固定要求 2 映射配置文件中,标签name属性值写实体类相关内容 (1)class标签name属性值实体类全路径 (2)id标签和 ...

  2. 【JAVAEE学习笔记】hibernate01:简介、搭建、配置文件详解、API详解和CRM练习:保存客户

    今日学习:hibernate是什么 一.hibernate是什么 框架是什么: 1.框架是用来提高开发效率的 2.封装了好了一些功能.我们需要使用这些功能时,调用即可.不需要再手动实现. 3.所以框架 ...

  3. JAVAEE学习——hibernate01:简介、搭建、配置文件详解、API详解和CRM练习:保存客户

    今日学习:hibernate是什么 一.hibernate是什么 框架是什么: 1.框架是用来提高开发效率的 2.封装了好了一些功能.我们需要使用这些功能时,调用即可.不需要再手动实现. 3.所以框架 ...

  4. MyBatis核心配置文件详解

    ------------------------siwuxie095                                     MyBatis 核心配置文件详解         1.核心 ...

  5. Hibernate入门核心配置文件和orm元数据配置文件详解

    框架是什么? 框架是用来提高开发效率的 封装了一些功能,我们需要使用这些功能时,调用即可,不用手动实现 所以框架可以理解为一个半成品的项目,只要懂得如何使用这些功能即可 Hibernate是完全面向对 ...

  6. AndroidManifest.xml配置文件详解(转载)

     AndroidManifest.xml配置文件详解 2013-01-05 10:25:23 分类: Android平台 AndroidManifest.xml配置文件对于Android应用开发来说是 ...

  7. 源码详解系列(六) ------ 全面讲解druid的使用和源码

    简介 druid是用于创建和管理连接,利用"池"的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制.连接可靠性测试.连接泄露控制.缓存语句等功能,另外,druid还扩展 ...

  8. 源码详解系列(七) ------ 全面讲解logback的使用和源码

    什么是logback logback 用于日志记录,可以将日志输出到控制台.文件.数据库和邮件等,相比其它所有的日志系统,logback 更快并且更小,包含了许多独特并且有用的特性. logback ...

  9. 源码详解系列(八) ------ 全面讲解HikariCP的使用和源码

    简介 HikariCP 是用于创建和管理连接,利用"池"的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制.连接可靠性测试.连接泄露控制.缓存语句等功能,另外,和 dr ...

随机推荐

  1. [Erlang05]gen_server怎么去写eunit?

    Prework: 怎样写一个基本的Eunit? Doc. 1. 加入头文件:声明此模块以”_test”结尾的函数都是测试用,并在编译时自动在这个模块里加入test()函数(当然这个可以用宏来控制) - ...

  2. async异步操作和同步上下文

    第8章 哪个线程运行我的代码 看到社区里的朋友没有翻译完这本书,我接着对一下的章节进行翻译 像我之前说的,异步编程就是关于线程的.那就意味着我们需要理解在C#程序中哪个.NET线程什么时候运行我们的代 ...

  3. 关于Relay的麻烦之处

    问题背景 由于QueryRender是直接将数据塞进Render()里的 handleUpdate = (hasNextPage, xdata) =>{ console.log(3); cons ...

  4. 基于flask的轻量级webapi开发入门-从搭建到部署

    基于flask的轻量级webapi开发入门-从搭建到部署 注:本文的代码开发工作均是在python3.7环境下完成的. 关键词:python flask tornado webapi 在python虚 ...

  5. MySQL数据库(三)

    1. 创建表 create table student( id int unsigned not null auto_increment primary key, name varchar(8) no ...

  6. while 小项目练习

    # (1) 用双层while 写十行十列小星星 j = 0 while j < 10: #打印一行十个小星星 i = 0 while i <10: print("*", ...

  7. Vagrant更改默认的SSH端口

    Vagrant默认转发宿主的2222端口到虚拟机的22端口(默认设置,无须配置).在有多个虚拟机并存的情况下,2222端口将不好使.具体表现在: 启动第二个虚拟机的时候,会报端口占用错误: $ vag ...

  8. kali linux之应用层Dos

    应用层服务漏洞: 服务代码存在漏洞,遇异常提交数据时程序崩溃 应用处理大量并发请求能力有限,被拒绝的是应用或OS 缓冲区溢出漏洞: 向目标函数随机提交数据,特定情况下数据覆盖临近寄存器或内存 影响:远 ...

  9. PHP删除一个目录下的所有文件,不删除文件夹

    /*删除指定目录下的文件,不删除目录文件夹*/ function delFile($dirName){ if(file_exists($dirName) && $handle=open ...

  10. 图论 竞赛图(tournament)学习笔记

    竞赛图(tournament)学习笔记 现在只是知道几个简单的性质... 竞赛图也叫有向完全图. 其实就是无向完全图的边有了方向. ​ 有一个很有趣的性质就是:一个tournament要么没有环,如果 ...