1. 查询整个映射对象所有字段

//直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段  
        String hql = "from Users";  
        Query query = session.createQuery(hql);  
            
        List<Users> users = query.list();  
        for(Users user : users){  
            System.out.println(user.getName() + " : " + user.getPasswd() + " : " + user.getId());  
        }  
   
 输出结果为:  
name1 : password1 : 1 
name2 : password2 : 2 
name3 : password3 : 3 

2.查询字段  

//查询其中几个字段  
        String hql = " select name,passwd from Users";  
        Query query = session.createQuery(hql);  
        //默认查询出来的list里存放的是一个Object数组  
        List<Object[]> list = query.list();  
        for(Object[] object : list){  
            String name = (String)object[0];  
            String passwd = (String)object[1];  
                
            System.out.println(name + " : " + passwd);  
        }  
输出结果为:  
name1 : password1  
name2 : password2  
name3 : password3 

3.修改默认查询结果(query.list())不以Object[]数组形式返回,以List形式返回

//查询其中几个字段,添加new list(),注意list里的l是小写的。也不需要导入包,这样通过query.list()出来的list里存放的不再是默认的Object数组了,而是List集合了 
         String hql = " select new list(name,passwd) from Users";  
        Query query = session.createQuery(hql);  
        //默认查询出来的list里存放的是一个Object数组,但是在这里list里存放的不再是默认的Object数组了,而是List集合了  
        List<List> list = query.list();  
        for(List user : list){  
            String name = (String)user.get(0);  
            String passwd = (String)user.get(1);  
                
            System.out.println(name + " : " + passwd);  
        }  
        /** 
        输出结果为: 
         name1 : password1 
        name2 : password2 
        name3 : password3 
         */ 

4.修改默认查询结果(query.list())不以Object[]数组形式返回,以Map形式返回

//查询其中几个字段,添加new map(),注意map里的m是小写的。也不需要导入包,这样通过query.list()出来的list里存放的不再是默认的Object数组了,而是map集合了  
        String hql = " select new map(name,passwd) from Users";  
        Query query = session.createQuery(hql);  
        //默认查询出来的list里存放的是一个Object数组,但是在这里list里存放的不再是默认的Object数组了,而是Map集合了  
        List<Map> list = query.list();  
        for(Map user : list){  
            //一条记录里所有的字段值都是map里的一个元素,key是字符串0,1,2,3....,value是字段值  
            //如果将hql改为:String hql = " select new map(name as username,passwd as password) from Users";,那么key将不是字符串0,1,2...了,而是"username","password"了  
            String name = (String)user.get("0");//get("0");是get(key),注意:0,1,2...是字符串,而不是整形  
            String passwd = (String)user.get("1");  
                
            System.out.println(name + " : " + passwd);  
        }  
        /** 
        输出结果为: 
         name1 : password1 
        name2 : password2 
        name3 : password3 
         */ 

5.修改默认查询结果(query.list())不以Object[]数组形式返回,以自定义类型返回

6.条件查询

//条件查询,参数索引值从0开始,索引位置。通过setString,setParameter设置参数  
        String hql = "from Users where name=? and passwd=?";  
        Query query = session.createQuery(hql);  
        //第1种方式  
//      query.setString(0, "name1");  
//      query.setString(1, "password1");  
        //第2种方式  
        query.setParameter(0, "name1",Hibernate.STRING);  
        query.setParameter(1, "password1",Hibernate.STRING);  
        List<Users> list = query.list();  
        for(Users users : list){  
            System.out.println(users.getId());  
        }  
//条件查询,自定义索引名(参数名):username,:password.通过setString,setParameter设置参数  
        String hql = "from Users where name=:username and passwd=:password";  
        Query query = session.createQuery(hql);  
        //第1种方式  
//      query.setString("username", "name1");  
//      query.setString("password", "password1");  
        //第2种方式,第3个参数确定类型  
        query.setParameter("username", "name1",Hibernate.STRING);  
        query.setParameter("password", "password1",Hibernate.STRING);  
        List<Users> list = query.list();  
        for(Users users : list){  
            System.out.println(users.getId());  
        

  

//条件查询,通过setProperties设置参数  
        String hql = "from Users where name=:username and passwd=:password";  
        Query query = session.createQuery(hql);  
        //MyUser类的2个属性必须和:username和:password对应  
        MyUser myUser = new MyUser("name1","password1");  
        query.setProperties(myUser);  
        List<Users> list = query.list();  
        for(Users users : list){  
            System.out.println(users.getId());  
        

  

7.update 数据

执行SQL语句(为什么要用SQL语句,我想是为了执行某些复杂的SQL语句吧) 

String sql="update Table set field = 'test'"
Session session = HibernateSessionFactory.getSession();
session.createSQLQuery(sql).executeUpdate();
ts.commit();

执行HQL语句   

String hql="update Table set field = 'test'"
Session session = HiberanteSessionFactory.getSession();
Transaction ts = session.beginTransaction();
Query query = session.createQuery(hql);
query.executeUpdate();
ts.commit();

hibernate 简单查询的更多相关文章

  1. Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)

    Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ...

  2. Hibernate的查询方式总结

    Hibernate的查询方式大体有三种,分别是HQL QBC和SQL三种.在网上查阅一一些资料,做了一个简单的总结. 1. SQL sql 是面向数据库表查询,from 后面跟的是表名,where 后 ...

  3. 菜鸟学习Hibernate——简单的增、删、改、查操作

    上篇博客利用Hibernate搭建起一个简单的例子,把数据库的映射显示了出来在上一篇的博客基础上这篇博客讲述如何利用Hinbernate框架实现简单的数据库操作. 1.加入junit.jar 2.新建 ...

  4. 新秀学习Hibernate——简单的增加、删、更改、检查操作

    部分博客使用Hibernate单的样例,把数据库的映射显示了出来在上一篇的博客基础上这篇博客讲述怎样利用Hinbernate框架实现简单的数据库操作. 1.增加junit.jar 2.新建一个工具类H ...

  5. Hibernate HQL查询:

    Hibernate HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查 ...

  6. Hibernate HQL查询语句总结

    Hibernate HQL查询语句总结 1. 实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql="from User user ";L ...

  7. Hibernate【查询、连接池、逆向工程】

    前言 在Hibernate的第二篇中只是简单地说了Hibernate的几种查询方式....到目前为止,我们都是使用一些简单的主键查询阿...使用HQL查询所有的数据....本博文主要讲解Hiberna ...

  8. Hibernate的查询方式

    Hibernate的查询的方式 OID检索 get或load方法进行的查询 对象导航检索 linkman.getCustomer(); HQL检索 用于接收hql语句进行查询,面向对象查询方式. 通过 ...

  9. Hibernate的查询的方式

    Hibernate的查询的方式 在Hibernate中提供了很多种的查询的方式.Hibernate共提供了五种查询方式. Hibernate的查询方式:OID查询 OID检索:Hibernate根据对 ...

随机推荐

  1. springMVC3学习(四)--訪问静态文件如js,jpg,css

    假设你的DispatcherServlet拦截的是*.do这种URL.就不存在訪问不到静态资源的问题 假设你的DispatcherServlet拦截了"/"全部的请求,那同一时候对 ...

  2. DB2数据库常用基本操作命令

    点击开始菜单-->所有程序-->IBM-->DB2-->DB2COPY1-->命令行工具-->命令窗口一.DB2实例操作1.查看DB2数据库的版本及安装目录 E:\ ...

  3. Asp.Net MVC4下设置W3P3(IIS)调试步骤

    环境] VS 2012  IIS7.5 [问题] MVC项目在创建时和APS.NET不同,不能够选择服务器类型,不能够直接把项目创建到IIS上. 如果在项目中直接更改属性,更换调试服务器类型,会报错 ...

  4. Mvc5+Entity Framework6 之二----在MVC中用Entity Framework实现基本的CRUD

    目标:创建控制器和视图的代码,实现CRUD(创建,读取,更新,删除)功能 创建一个详细信息页 控制器为Students的Index页生成的代码排除Enrollments属性在外,因为该属性中关联着一个 ...

  5. 查看Android系统当前运行的activity

    在Appium进行自动化测试的时候,往往需要知道你要测试的应用的包名和activity的名字,这样才可以进行自动化测试. 在我之前的博客中也提到了获取activity的名字,但是并不是很方便,甚至浪费 ...

  6. Javascript 常用代码总结

    1. document.referrer可以获得上一页的地址,使用document.anchors获得页面上面所有的链接元素,而不必使用 document.getElementsByTagName(' ...

  7. Oracle游标cursor1基础和隐式游标

    --指向表行的指针,一次一行,一般向前移动 Resultset --游标永远代代表的是一行数据. /* 使用步骤 第一步:声明游标,就像是声明一个变量样. 游标的关键字就是cursor. Declar ...

  8. androik_sdk 更新慢问题解决办法。

    在windows中更改hosts(找到文件夹C:\Windows\System32\drivers\etc找到里面的hosts文件 )在这里添加74.125.237.1 dl-ssl.google.c ...

  9. sublime text帮你更好的写python

    在Google的Python风格指南中,有这样的要求: 用4个空格来缩进代码 但是每次在敲代码的时候,用一个tab确实比敲四次空格方便的多.令人欣慰的是sublime text 2能够把tab转换成4 ...

  10. js统计字符串,并且判断出现次数最多的

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...