zoukankan      html  css  js  c++  java
  • 关于hibernate的查询

     

    为什么建议hibernate查询全部字段

    一般而言,要查询什么字段就查询什么字段,不要select * from表,但是在hibernate,我们其实可以不遵循这个规则,建议我们把所有属性都查询出来(可以封装成一个实体类),这样就省去了二次封装的过程,虽然浪费了一些资源,但利大于弊。当然如果一定要查询单个字段的话,那么只能从list中提取数据

    hibernate的uniqueResult方法

    如果你确定查询的是唯一的结果的话,那么建议使用uniqueResult方法,该结果返回一个对象(例如在验证用户登录中可以使用)

    为什么说hibernate简化了sql的查询过程

    看一个例子

    在三表查询中 查询某选课号为3的学生的姓名,这里用到了三表查询,如果使用原生的sql语句要用到三级查询,而使用hql语句的话则是一句语句(用面对对象的思想)

    select student.name,student.age from stutocourse where id=1;

    关于hibernate的分页

    session.createQuery("from Student").setFirstResult(i).setMaxResults(j).list();

    其中setFirstResult()中的参数是从第几条开始,setMaxResults()中的参数是取几条。

    查询后的返回对象的类型

    如果查询的是一个字段的话list就存放的是一个object,如果查询的是多个字段的话那么存放的是object[];

    关于hibernate的参数查询

    可以使用query.setString("位置","值")来设置 这也意味着可以提取为一个工具类 另外一个方法是where name=:name的写法 其赋值的方法是 .setString("name","值")本质是都是一样的

    特别注意

    hql语句中没有select * 的写法 这是与sql不一样的

    关于hibernate提供的更新删除的方法

    executeUpdate是hibernate提供的方法该方法返回的是影响的行数;

  • 相关阅读:
    5月29日实验报告
    实验报告(2019年4月30日)下半部分
    实验报告(2019年4月31日)
    实验报告(2019年4月17日)
    第五章 循环结构课后反思
    实验报告(2019年4月3日)
    第一次实验报告
    503小组第三章编程作业
    第九章 结构体与共用体
    第八章 指针实验
  • 原文地址:https://www.cnblogs.com/zhongyimeng/p/9751715.html
Copyright © 2011-2022 走看看