• hibernate框架学习第五天:数据查询、投影等


    复习
    day1
    环境搭建
    CRUD操作DB
    6个核心的API
    day2
    TO PO DO 及其状态切换
    OID 自然主键 代理主键(uuid)
    一级缓存 Session绑定
    load/get
    关系
    1对1
    1对多(重点) 一set one-to-many 多many-to-one
    对多对 两边都是set many-to-many
    表结构 外键
    对象 Set 对象
    配置
    级联操作 cascade 多
    inverse true/false
    --------------------------------------------
    数据查询(数据检索)
    OID数据查询方式
    load/get 3个不同点
    HQL数据查询方式
    HQL语句 Query
    QBC数据查询方式
    Criteria
    本地SQL查询方式
    SQL语句 SQLQuery
    OGN数据查询方式
    获取到了对象后,就可以读取对象中所包含的对象的属性
    对象名.对象名.属性
    sm.teacher.teacherName

    HQL数据查询方式
    1.简单查询
    select内容是按照数据库的顺序给定的,开发中字段
    2.链式格式
    3.查询结果的获取
    查询数据总量:
    多条数据
    单一数据
    查询结果
    单一对象或者单一属性
    多个属性或对象
    4.别名
    5.聚合函数使用
    6.分页
    7.条件查询
    参数设定可以使用索引格式或者使用变量名格式
    设置参数
    setParameter(??,??)
    setLong(??,??) setString(??,??)
    setEntity(??,对象)
    *对象必须是DO PO(具有OID)
    8.投影
    构造方法
    List
    Map
    0 李若亮
    1 Jock
    0 张三丰
    1 张真人
    9.分组
    group by 属性
    10.排序
    order by 属性
    11.多态查询(不用)
    OrderModel
    Order1Model
    Order2Model
    如果当前模型在cfg.xml中注册了,包名可以省略不写
    java.lang.Object
    TeacherModel
    12.配置格式的查询
    1.在任意的hbm.xml文件中添加命名的查询HQL,query元素属于hibernate-mapping子元素,不是class的子元素
    <query name="getAll">
    <![CDATA[from TeacherModel where teacherName = :name]]>
    </query>
    2.Query对象获取
    s.getNamedQuery(配置查询的名称"getAll")
    3.其他内容同普通查询
    以上操作均为单表查询
    -----------------
    以下操作为多表查询
    多表查询,7种
    交叉连接(笛卡尔积)
    内连接
    内连接
    “from TeacherModel tm inner join tm.students s”
    数据模型:主表数据 主表关联的数据
    数据总量:关联数据总量
    迫切内连接
    “from TeacherModel tm inner join fetch tm.students s”
    数据模型:主表数据
    数据总量:关联数据总量
    隐式内连接
    “from TeacherModel”
    数据模型:主表数据
    数据总量:主表数据总量
    外连接
    左外连接
    “from TeacherModel tm left outer join tm.students s ”
    数据模型:主表数据 主表关联的数据
    数据总量:从表被关联数据总量+主表未关联数据总量
    迫切左外连接
    “from TeacherModel tm left outer join fetch tm.students s ”
    数据模型:主表数据
    数据总量:从表被关联数据总量+主表未关联数据总量
    右外连接
    “from TeacherModel tm right out join tm.students s”
    数据模型:主表数据 主表关联的数据
    数据总量:从表数据总量

    迫切连接与非迫切连接区别
    0.获取的数据总量都相同
    1.非迫切连接包含主和从
    2.迫切连接只包含主

  • 相关阅读:
    Java实现网易163邮箱好友通讯录的解析功能(带源码)
    wordpress优化第四招 修改评论模板,留住客户,让评论在新的页面打开。
    wordpress优化 使用SAE提供的jquery.js替代wordpress原生的
    出售wordpress的淘宝客主题一套
    做了一个可以生成在线mp3 flash播放器的网站
    wordpress优化第三招 开启gzip减少网页流量
    20多个常用的免费WebService接口
    wordpress优化第一招 压缩css和js减少流量提高博客速度(尤其适用SAE)
    Linux学习笔记10常用操作命令(useradd命令、passwd 命令)
    Linux学习笔记08linux文本处理(cat命令、more命令、head命令、tail命令)
  • 原文地址:https://www.cnblogs.com/xyhero/p/9348825.html
Copyright © 2020-2023  润新知