1,Configuration 配置

获取config配置文件的方法

Configuration cfg = new Configuration();

cfg.下面的方法

  • configure()
  • configure(String resource)

添加映射文件,映射文件为类名.hbm.xml配置文件,用于配置类的成员变量和表列的相匹配关系

addResource(String resource) 导入一个指定位置的映射文件

载入类,根据类.Class来载入类名

addClass(Class clazz) 导入与指定类同一个包中的以类名为前缀,后缀为.hbm.xml的映射文件

生成sessionFacotry

buildSessionFactory()

2,SessionFactory Session工厂

获取Session,关闭Session,此关闭session是指将session返还给session工厂

openSession()
getCurrentSession()
close()

3,Session 很重要的一个对象

操作对象的方法

  • save(Object)
  • update(Object)
  • delete(Object)

查询的方法

  • createQuery(String) --> Query
  • createCriteria(Class)

管理事务的方法

  • beginTransaction() --> Transaction
  • getTransaction() --> Transaction 获取当前Session中关联的事务对象

其他的方法
...

Transaction 事务

  • commit()
  • rollback()

Query 查询

  • list() 查询一个结果集合。
  • uniqueResult() 查询一个唯一的结果,如果没有结果,则返回null,如果结果有多个,就抛异常。

4,Hibernate主配置文件

1,数据库信息

<property ...>

方言、JdbcUrl、驱动、用户名、密码

2,导入映射文件

<mapping ...>

3,其他配置

<property ...>

show_sql 显示生成的SQL语句

format_sql 格式化生成的SQL语句

hbm2ddl.auto 自动生成表结构

hibernate.hbm2ddl.auto  自动生成表结构

5,主键类型

如果主键是数字的话,类建议使用包装类型,比如说Integer类型来代替int类型

表中的主键常用<generator class="native" />来作为主键的生成规则,因为这个匹配大部分数据库,包括有自动增长(mssql,mysql)的和无自动增长通过序列的(oracle)

6,插入集合类型的

常见的集合有Set(hashset),list(arraylist),array,map(hashmap)等,在xxx.hbm.xml配置时,具体的配置如下

注意:使用集合属性时,一定要使用接口,而不能声明为具体的实现类。因为经过Session操作后,集合就变成了Hibernate自己的集合实现类。

7,映射关联关系

多对一关系

 <!-- department属性,表达的是本类与Department的多对一
2             class属性:关联的实体类型
3             column属性:外键列(引用关联对象的表的主键)
4         -->
5         <many-to-one name="department" class="Department" column="departmentId"></many-to-one>
1         <!-- department属性,表达的是本类与Department的多对一
2             class属性:关联的实体类型
3             column属性:外键列(引用关联对象的表的主键)
4         -->
5         <many-to-one name="department" class="Department" column="departmentId"></many-to-one>

一对多关系

  多对多关系

<!-- name对应于对象中多的那个集合的属性值 ,table对饮两个对对多的表名,inverse对应是否相互通知对方-->
2         <set name="teachers" table="teacher_student" inverse="true">
3         <!-- key对应于对象在对应关系表中的主键 -->
4             <key column="stu_id"></key>
5             <!-- class对应与多对多另外一方的类名,column对应在多对多表中,另外一个类的主键对应的值 -->
6             <many-to-many class="Teacher" column="te_id"></many-to-many>
7         </set>
1         <!-- name对应于对象中多的那个集合的属性值 ,table对饮两个对对多的表名,inverse对应是否相互通知对方-->
2         <set name="teachers" table="teacher_student" inverse="true">
3         <!-- key对应于对象在对应关系表中的主键 -->
4             <key column="stu_id"></key>
5             <!-- class对应与多对多另外一方的类名,column对应在多对多表中,另外一个类的主键对应的值 -->
6             <many-to-many class="Teacher" column="te_id"></many-to-many>
7         </set>

8,映射关系简单图鉴

一对多(Set)
<Set name="">
<key column=""/> (写对方类的表达此关系的外键列名)
<one-to-many class=""/>
</Set>

多对一
<many-to-one name="" class="" column="" />

多对多<set>
<set name="" talbe="">
<key column=""/> (引用自己主键)
<many-to-many class="" column/>(引用对方主键)
</set>

一对一(基于外键的有外键方)
<many-to-one name="" class="" unique="true" />

一对一(基于外键的无外键方)
<one-to-one name="" class="" property-ref=""/>

Hibernate总结2 API和配置文件相关推荐

  1. java调试宝塔api_宝塔面板API接口配置文件

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段.编程之家小编现在分享给大家,也给大家做个参考. 我们在使用宝塔面板的的时候,如果需要用 PHP 来操作一些 API 接口,那么肯定需要知道一 ...

  2. 四、Hibernate框架的API (三)-- Session对象

    一.Session对象 1.Hibernate最重要的对象,只用使用hibernate与数据库操作,都用到这个对象2.该对象维护了一个Connection对象.代表了与数据库连接的会话.3.该对象实质 ...

  3. Hibernate的常用API

    Hibernate的核心类和接口一共有6个,分别为:Session.SessionFactory. Transaction.Query.Criteria和Configuration.这6个核心类和接口 ...

  4. eclipse中hibernate和mybatis中xml配置文件的没有标签提醒解决方法

    当我们使用eclipse编写Mybatis或hibernate的xml文件时,面对众多标签的配置文件,却没有自动提醒,对于工作和学习都十分不方便. 之所以没有自动提醒,是因为dtd文件没有加载成功. ...

  5. Hibernate的核心API

    Configuration:负责管理Hibernate的配置信息 1.加载核心配置文件 核心配置有两种: hibernate.properties 加载:Configuration configura ...

  6. Windows API ——WritePrivateProfileString——配置文件

    1 #pragma once 2 3 class OperationConfig 4 { 5 public: 6 7 OperationConfig(void); 8 ~OperationConfig ...

  7. Lua,Lua API,配置文件

    想像一个场景:你的c程序须要有一个窗体,你想让用户能够自己定义窗体大小.方法非常多.比方使用环境变量,或键值对的文件. 无论如何,你须要解析它. 使用lua配置文件是个不错的选择. 首先,你能够定义例 ...

  8. Kong API Gateway 配置文件详解

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 一.前言 Kong配置文件是Kong服务的核心文件,它配置了Kong以怎么的方式运行,并且依赖于这个配置生成Nginx的配置文件,本文通过解读Kong ...

  9. Hibernate学习(3) (继承映射,配置文件和注解版)

    这篇blog准备写怎样在Hibernate中反应内存对象之间的继承关系.我们知道,内存对象之间是可以有继承关系的,但是在数据库中,我们继承神马的都是浮云,不存在的.那么怎么办呢?Hibernate提供 ...

最新文章

  1. 使用Powershell来修改Hyper-v Server本地管理员密码为永不过期
  2. HDU 1242 Rescue BFS+优先队列
  3. 【干货】Kaggle 数据挖掘比赛经验分享(mark 专业的数据建模过程)
  4. 珂朵莉的约数(牛客练习赛9)
  5. 2021年广西高考成绩查询方法,2021年广西高考成绩查询网站查分网址:https://www.gxeea.cn/...
  6. matlab_ga(),matlab遗传算法ga函数
  7. LDAP命令介绍---dsreplication
  8. 14.面向对象-----UML类图
  9. setuptools find_packages
  10. forth day ---内置函数、匿名函数
  11. android httpclient webview,android – 访问WebView中的http响应头?
  12. java学习视频 java常用23种设计模式
  13. 子账号授权服务器,京东子账号装修权限之怎么授权使用详情页模板市场?
  14. 电商网站一般用什么技术开发
  15. MongoDB中where in操作
  16. OpenJ_Bailian - 4104 G - 单词翻转
  17. java中文逗号替换成英文逗号_word如何将大量英文逗号批量替换为中文逗号?
  18. C++2.0 shared_ptr和weak_ptr深入刨析
  19. web静态网页-爱心公益小站
  20. Java循环控制语句

热门文章

  1. 用物理学突破深度学习理论瓶颈? Google-斯坦福发布《深度学习统计力学》综述论文,30页pdf阐述深度学习成功机制...
  2. 关于征集2020重大科学问题和工程技术难题的通知
  3. 塔勒布: 2019-nCoV的系统风险:一份笔记
  4. Science:睡眠剥夺影响大脑思考竟是因为蛋白质罢工了!
  5. 崛起的超级智能:是否会是下一个“麦克卢汉式”预言?
  6. Science Robotics近日刊登CMU重大突破,无需手术,普通人就能用意念操控机械臂!...
  7. 量子通信是不是伪科学?潘建伟这样回应
  8. 2018世界人工智能蓝皮书:看中国到底有多强!【附下载】| 智东西内参
  9. 我们离得开美国的软件和硬件吗?
  10. AMD VS 英特尔:芯片制造实力似乎正在发生逆转!