hibernate配置

映射约束文件

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

核心配置约束文件

<!DOCTYPE hibernate-configuration SYSTEM
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

实体类映射文件配置信息

<hibernate-mapping>
    <!-- 让实体类和数据库表进行对应 -->
    <class name="com.qixinginc.entity.User" table="tbl_user">
        <!-- 让属性和字段进行对应 -->
            <id name="uid" column="uid">
            <!-- 设置数据库主键id生成策略 -->
            <generator class="native"></generator>
       </id>
       <property name="uname" column="uname"></property>
    </class>
</hibernate-mapping>

数据库核心配置文件

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>

Hibernate可选配置文件

> 输出sql语句到控制台
<property name="show_sql">true</property>

> 格式化sql语句
<property name="format_sql">true</property>

> 自动创建数据库表和字段
<property name="hbm2ddl.auto">update</property>

> 设置数据库方言
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

> 绑定本地Session线程
<property name="hibernate.current_session_context_class">thread</property>

级联添加

cascade="save-update"

级联删除

cascade="delete"

inverse属性

  • [ 解决方案] 一对多放弃一那方的外键维护
false(不放弃维护)/true(放弃维护)
hibernate查询方式

对象导航查询

  • 查询老师名下所有的学生

    Teacher teacher=session.get(Teacher.class,1);    # 查询ID为1的老师
    Set<Student> stuSet=teacher.getSetStudent();     # 查询老师名下所有的学生

OID查询

  • 根据id进行查询,返回对象
Teacher teacher=session.get(Teacher.class,1);    # 查询ID为1的老师,返回对象

HQL查询

  • SQL是查询表和字段
  • HQL是查询实体类对象和属性
Query查询对象

from User       # 查询所有
select uname from User      # 投影查询

query.setFirstResult(0);    # 从第几条记录开始
query.setMaxResults(5);     # 每页显示的记录数

query.uniqueResult();       # 返回唯一结果的值

HQL多表查询方式

  1. 内连接
from Teacher t inner join t.SetStudent      # 返回数组形式
  1. 左外连接
from Teacher t left outer join t.SetStudent     # 返回数组形式
  1. 右外连接
from Teacher t right outer join t.SetStudent        # 返回数组形式
  1. 迫切内连接
from Teacher t inner join fetch t.SetStudent        # 返回对象类型
  1. 迫切左外连接
from Teacher t left outer join  fetch t.SetStudent      # 返回对象形式

hibernate检索策略

  1. 立即查询:根据ID查询,调用get方法,一调用get方法立马查询数据库
  2. 延迟查询:根据ID查询,调用load方法,调用load方法不会马上查询数据库,而是得到对象里面值的时候才会发送语句查询数据库

Hibernate开发文档的更多相关文章

  1. CRMEB系统开发文档

    CRMEB系统开发文档 https://gitee.com/ZhongBangKeJi/CRMEB hibernate:学习文档https://blog.csdn.net/u013087513/art ...

  2. [翻译]开发文档:android Bitmap的高效使用

    内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...

  3. Net通用进销存管理系统 + 开发文档+ 使用说明

    通用进销存管理系统 + 开发文档+ 使用说明Net源码下载 包括下面的模块基础资料模块采购管理模块库存管理模块商务管理模块营业管理模块维修管理模块会员管理模块财务管理模块 Net通用进销存管理系统 + ...

  4. C#微信开发文档

    C#微信开发文档 开发前准备 微信公众平台链接: https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN 开发初期我们使用测 ...

  5. 在线API,桌面版,jquery,css,Android中文开发文档,JScript,SQL掌用实例

    学习帮助文档大全 jquery,css,Android中文开发文档,JScript,SQL掌用实例 http://api.jq-school.com/

  6. 基于x86架构的内核Demo的详细开发文档

    http://hurlex.0xffffff.org/ 这里是hurlex这个基于x86架构的内核Demo的详细开发文档, 包含PDF文档和生成PDF的XeLaTex源码和文档每章节的阶段代码. 你可 ...

  7. ECMall模板开发文档

    ECMall 模板开发文档 前 言 欢迎阅读 ECMall 模板制作教程,通过阅读本教程可快速上手 ECMall 模板的使用和制作. ECMall 模板制 作要求用户具备 XML . XHTML 和 ...

  8. AFC项目开发文档整理

    AFC项目开发文档整理 PHPCMS 的确是一个伟大的CMS,我对它爱不释手. 标签嵌套无法loop获取的解决办法.关键代码如下: /\*后台添加\*/ $str = preg_replace ( & ...

  9. QM项目开发文档整理

    QM项目开发文档整理 前言 在W公司工作4个多月,庆幸接触到的全是"硬"项目,真枪实干,技术.经验.能力都得到了很大提升. QM项目 此项目WEB前端学到的东西很多,对PHP项目的 ...

随机推荐

  1. IsKeyboardFocused -- 键盘焦点

    <Trigger Property="IsKeyboardFocused" Value="true"> <!--<Setter Prop ...

  2. WPF中的imagesource 和内存图片的处理

    [转载]ImageSource的使用心得 很多时候,我们会使用图片来装饰UI,比如作为控件背景等. 而这些图片可以分为两种形式,即存在于本地文件系统中的图片和存在于内存中的图片 对于这两种形式的图片, ...

  3. 【网络爬虫入门02】HTTP客户端库Requests的基本原理与基础应用

    [网络爬虫入门02]HTTP客户端库Requests的基本原理与基础应用 广东职业技术学院  欧浩源 1.引言 实现网络爬虫的第一步就是要建立网络连接并向服务器或网页等网络资源发起请求.urllib是 ...

  4. DOS命令(系统错误5,拒绝访问)的解决方法

    在用DOS命令启动MySQL服务时,出现(系统错误5,拒绝访问)的错误提示,这是由于我们操作的权限不足造成的,需要以管理员身份启动,解决问题方法如下: 1."Windows+S"- ...

  5. 近期面试总结(PHP后端开发工程师)(部分笔试题)

    1.字符串"0"在PHP和js中转换为布尔值是false还是true php:false; php 弱语言 '0'和0一样: js:true:字符串除了空字符串('')其他都是tr ...

  6. win10 + python3.6 + VSCode + tensorflow-gpu + keras + cuda8 + cuDN6N环境配置

    写在前面的话: 再弄这个之前,我对python也好,tensorflow也好几乎是0认知的,所以配置这个环境的时候,走了不少弯路,整整耗费了一个星期的时间才搭配完整这个环境,简直了...然而最气的是, ...

  7. 初学者易上手的SSH-hibernate02 三种查询方式

    在上一章中已经搭建好了一个hibernate的环境,那么这一章我们就使用这个环境来进行基本CRUD.在这之前我们先了解一个东西:主键生成策略.就是当向数据库表中插入记录的时候,这个记录的主键该如何生成 ...

  8. 牛顿插值法及其C++实现

    h1 { margin-bottom: 0.21cm } h1.western { font-family: "Liberation Sans", sans-serif; font ...

  9. 面试总结之mysql

    总结自己在面试过程遇到的数据库问题,以备不时之需. 1.你在你们公司用的什么版本的mysql数据库,用过mysql5.7吗? 在学校学习mysql的时候用的5.5,在公司的时候用的5.6,5.7还真没 ...

  10. hash在URL上的用法及作用

    阅读目录 1. # 2. ? 3. & 回到顶部 1. # 10年9月,twitter改版.一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为http ...