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. OpenStack high-level Functionsenabled

  2. Scrapy URLError

    错误信息如下: 2015-12-03 16:05:08 [scrapy] INFO: Scrapy 1.0.3 started (bot: LabelCrawler) 2015-12-03 16:05 ...

  3. c/c++性能优化--- cache优化的一点杂谈

    之前写了一篇关于c/c++优化的一点建议,被各种拍砖和吐槽,有赞成的有反对的,还有中立的,网友对那篇博客的的评论和吐槽,我一个都没有删掉,包括一些具有攻击性的言论.笔者有幸阅读过IBM某个项目的框架代 ...

  4. 8位(bit)=1字节(Byte)

    8位(bit)=1字节(Byte),1024字节=1KB: 提到了字节,不得不再提到“字”这个计量单位:“字”由若干个字节构成,字的位数叫做字长,字长就是说字所对应的二进制数的长度.不同的机器有不同的 ...

  5. springMVC在JSP页面取map值

    在springmMVC中.jsp页面取得map值. 在controller层: Map<String, Object> map = new HashMap<String, Objec ...

  6. 对拍BAT

    :loop makedata.exe K.exe Kture.exe fc a.out b.out if %errorlevel%==0 goto loop pause

  7. Android学习之DialogFragment

    DialogFrament是Android sdk中的对话框基类,开发人员可以针对此类进行扩展.他可以扩展出Android中的多种对话框,比如alertdialog,listdialog,radiod ...

  8. 下拉条的连动-ajax方式

    客户端触发: <select id="category1" onchange="changecategory()">    <option v ...

  9. CSS垂直居中解决方案

    问题场景 应用的地方比较普遍,这里有两个赤裸裸的栗子:   也有很多流行的方案,这里只针对各种方案的适用场景来做一些分析 问题抽象 其实,垂直居中问题可以简化成这样:一个容器HTML元素(#conta ...

  10. java 和 Python 的互调

    http://www.cnblogs.com/lmyhao/p/3363385.html http://blog.csdn.net/wxiaow9000/article/details/5166029 ...