博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate总结2 API和配置文件
阅读量:6570 次
发布时间:2019-06-24

本文共 2020 字,大约阅读时间需要 6 分钟。

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,映射关联关系

多对一关系

5
1         
5

一对多关系

 

   多对多关系

2
3
4
5
6
7
1         
2
3
4
5
6
7

 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=""/>

转载地址:http://tlpjo.baihongyu.com/

你可能感兴趣的文章
【权值分块】bzoj1503 [NOI2004]郁闷的出纳员
查看>>
【枚举】【二分答案】【分块答案】【BFS】【最大流】【Dinic】bzoj1189 [HNOI2007]紧急疏散evacuate...
查看>>
期末大作业
查看>>
ThreadLocal
查看>>
第一次作业-准备篇
查看>>
cnzz统计代码引起的Bad Request - Request Too Long
查看>>
MinGW安装与使用简介
查看>>
Sublime Text 3 遇到的一些小坑的解决方法
查看>>
JSP之9大对象
查看>>
sql 递归查询
查看>>
KMP C++
查看>>
HDU1506 Largest Rectangle in a Histogram(算竞进阶习题)
查看>>
HTTP响应状态码
查看>>
crushmap磁盘智能分组
查看>>
《算法导论》读书笔记--第三章 函数的增长
查看>>
《利用python进行数据分析》读书笔记--第八章 绘图和可视化
查看>>
栈的操作
查看>>
Flask 备注一(单元测试,Debugger, Logger)
查看>>
ElasticSearch(八):springboot集成ElasticSearch集群并使用
查看>>
Java基础学习_01 概述及环境配置
查看>>