1、使用session的get方法

     public User getUser(int id){
Session session = null;
User user = null;
try {
session = HibernateUtils.getSession();
/*根据主键获取一条记录*/
user = (User) session.get(User.class,id);
}finally {
if (session != null){
session.close();
}
}
return user;
}

2、使用HQL语言查询 Query

     public User getUserBynName(String name){
User user = null;
Session session = null;
try {
session = HibernateUtils.getSession();
/*这里查的是User对象,不是user表,支持多态*/
String hql = " FROM User as user WHERE user.name = :name ";
Query query = session.createQuery(hql);
query.setString("name",name);
/*只返回一条记录,否则报错*/
user = (User) query.uniqueResult();
}finally {
if (session != null){
session.close();
}
}
return user;
} public List<User> getUsersByName(String name){
List<User> users = null;
Session session = null;
try {
session = HibernateUtils.getSession();
/*这里查的是User对象,不是user表,支持多态*/
String hql = " FROM User as user WHERE user.name LIKE :name ";
Query query = session.createQuery(hql);
query.setString("name",name+"%");
query.setFirstResult(10);
query.setMaxResults(5);
users = query.list();
}finally {
if (session != null){
session.close();
}
}
return users;
}

3、使用条件查询 Criteria

     public User getUserByNameCri(String name){
Session session = null;
User user = null;
try {
session = HibernateUtils.getSession();
/*条件查询*/
Criteria criteria = session.createCriteria(User.class);
/*添加约束条件*/
criteria.add(Restrictions.eq("name",name));
user = (User) criteria.uniqueResult();
}finally {
if (session != null){
session.close();
}
}
return user;
}

Hibernate常用方法之_查询的更多相关文章

  1. Hibernate常用方法之_删除

    1.使用session的delete方法 public void deleteUser(User user){ Session session = null; Transaction transact ...

  2. Hibernate常用方法之_修改

    1.使用session的saveOrUpdate方法 public void updateUser(User user){ Session session = null; Transaction tr ...

  3. Hibernate常用方法之_插入

    1.使用session的save方法进行插入 public void saveUser(User user){ Session session = null; Transaction transact ...

  4. Hibernate框架笔记04HQL_QBC查询详解_抓取策略优化机制

    目录 1. Hibernate的查询方式 1.1 方式一:OID查询 1.2 方式二:对象导航查询 1.3 方式三:HQL方式 1.4 方式四:QBC查询 1.5 方式五:SQL查询 2. 环境搭建 ...

  5. hibernate将本地SQL查询结果封装成对象

    hibernate将本地SQL查询结果封装成对象 不知道大家有没有碰过这种情况,迫于很多情况只能用native SQL来查询(如:复杂统计等),然而使用native查询后,结果会被放到object里, ...

  6. [转载]Hibernate如何提升数据库查询的性能

    目录(?)[-] 数据库查询性能的提升也是涉及到开发中的各个阶段在开发中选用正确的查询方法无疑是最基础也最简单的 SQL语句的优化 使用正确的查询方法 使用正确的抓取策略 Hibernate的性能优化 ...

  7. hibernate使用原生SQL查询返回结果集的处理

    今天没事的时候,看到公司框架里有一个用原生SQL写的函数,说实在以前自己也干过这事,但好久都没有用,都忘得差不多了,现在基本都是用的hql语句来查询结果.hibernate中使用createSQLQu ...

  8. Hibernate 插入,修改,删除,查询语句

    /* *具体操作hibernate的类 *增加,删除,修改,按ID查询,模糊查询,查询全部 **/ public class PersonOperate { //在hibernate中所有操作都是由S ...

  9. 13.hibernate的native sql查询(转自xiaoluo501395377)

    hibernate的native sql查询   在我们的hibernate中,除了我们常用的HQL查询以外,还非常好的支持了原生的SQL查询,那么我们既然使用了hibernate,为什么不都采用hi ...

随机推荐

  1. Recycler实现瀑布流

    (开发环境Android studio) 首先,在开发环境中添加引用(在外层的build.gradle文件下的dependencies里面添加如下引用) implementation 'com.and ...

  2. TCP回话劫持原理和利用

    由于 TCP 协议并没有对 TCP 的传输包进行身份验证,所以在我们知道一个 TCP 连接中的 seq 和 ack 的信息后就可以很容易的伪造传输包,假装任意一方与另一方进行通信,我们将这一过程称为 ...

  3. ASP.NET HttpHandler加水印

    一.指定Handler方式 1.添加Handler一般处理程序 2.PicHandler.ashx源码如下: 需要的引用: using System; using System.Collections ...

  4. 在Vue项目里面使用d3.js

    之前写一个 Demo里面 有些东西要使用d3实现一些效果 但是在很多论坛找资源都找不到可以在Vue里面使用D3.js的方法,npm 上面的D3相对来说 可以说是很不人性化了 完全没有说 在webpac ...

  5. collections模块的使用

    1. Counter counter是collections中的一个模块, 它能够统计出字符串/文本中的每一个元素出现的次数, 并可以对结果进行进一步的处理. 使用方法 传入: 字符串 默认返回: C ...

  6. css实现未知元素宽高垂直居中和水平居中的方法

    第一种:display:table-cell的方式 .container { /*父级容器*/ display:table-cell; text-align:center; vertical-alig ...

  7. PHPPCRE正则解析

    一.前言 前面的博客里,有对字符集的解析.这里就不是字符集的事儿了,在PHP中很多函数的处理默认是unicode中的UTF-8编码格式.那么废话不多说,直接开始正题. 二.PHP函数mb_split解 ...

  8. YII2 多MongoDB配置和使用

    1:在config/web.php 文件下配置多个连接即可: 注意在componets 下 'mongodb' => [ 'class' => '\yii\mongodb\Connecti ...

  9. 阅读《大型网站技术架构》,并结合"重大需求征集系统"有感

    今天阅读了<大型网站技术架构:核心原理与案例分析>的第五.六.七章.这三张主要是讲述了一个系统的可用性.伸缩性和可扩展性.而根据文中所讲述的,一个系统的可用性主要是体现在这个系统的系统服务 ...

  10. zabbix使用iostat命令参数监控磁盘性能

    iostat命令 先说一个坑把,在开始监控的时候使用命令iostat -dtkx,得到的结果看上去没问题,但是在web监控窗口数据就说不变动,为啥呢,因为iostat这个命令得到的第一个数据始终是磁盘 ...