hql语句中的select字句和from 字句

package com.imooc.model;

import java.util.List;
import java.util.Map;

import org.hibernate.Query;
import org.hibernate.Session;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.imooc.util.HibernateSessionFactory;

public class SellerTest {
    private Session session = null;

    @Test
    public void testSelectClauseSelf(){
        String hql = " select new Seller(s.name,s.tel,s.address) from Seller s ";
        Query query = session.createQuery(hql);
        List<Seller> sellers = query.list();

        for(Seller seller : sellers){
            System.out.println("name: "+seller.getName());
            System.out.println("tel:"+seller.getTel());
            System.out.println("address:"+seller.getAddress());
        }
    }

    @Test
    public void testSelectClauseMap(){
        String hql = " select new map(s.name,s.tel,s.address) from Seller s ";
        Query query =session.createQuery(hql);

        List<Map> maps = query.list();
        for(Map map : maps){
            System.out.println("name:"+map.get("0"));
            System.out.println("tel:"+map.get("1"));
            System.out.println("address:"+map.get("2"));
        }
    }

    @Test
    public void testSelectClauseList(){
        String hql = " select new list(s.name,s.tel,s.address) from Seller s ";

        Query query = session.createQuery(hql);
        List<List> lists = query.list();

        for(List list : lists){
            System.out.println("name : "+list.get(0));
            System.out.println("tel:"+list.get(1));
            System.out.println("address:"+list.get(2));
        }
    }

    /*
     * 1.name 2.tel 3.address 4.star
     */
    @Test
    public void testSelectClauseObjectArray(){
        String hql = " select s.name from Seller s ";

        Query query = session.createQuery(hql);

        List<Object> list = query.list();

        for(Object obj : list){
            System.out.println("name:"+obj);
        }
    }
    /**
     * new一个新对象
     * @Description:
     */
    @Test
    public void testSelectMap(){
        String hql="select new map(s.name as name,s.tel as tel) from Seller s";
        Query query = session.createQuery(hql);
        List<Map<String,Object>> list = query.list();
        for (Map<String, Object> map : list) {
            System.out.println(map.get("name")+"  "+map.get("tel"));
        }
    }
/**
 * 测试from字句
 * @Description:
 */
    @Test
    public void testFromClause(){
        String hql = " from Seller  s ";

        Query query = session.createQuery(hql);

        List<Seller> sellers = query.list();
        for(Seller seller : sellers){
            System.out.println("name:"+seller.getName());
        }
    }
    /**
     * 使用list进行传递里面的参数
     * @Description:
     */
    @Test
    public void testListFromClause(){
        String hql="select new list(s.name,s.tel) from Seller s";
        Query query=session.createQuery(hql);
        List<List<Object>> list=query.list();
        for (List<Object> list2 : list) {
            for (Object object : list2) {
                System.out.println(object);
            }
        }
    }
/**
 * //当这里的值只能是一个的时候在List的集合中应该设置为Object
 * @Description:创建的是distinct 关键字的作用
 * distinct这个关键字加入到里面中可以去除重复的内容
 */
    @Test
    public void testListFromDistict(){
        String hql="select distinct c.sex from Customer as c";
        Query query=session.createQuery(hql);
        List<Object> list=query.list();
        for (Object object : list) {
            System.out.println(object);
        }
    }
    @Before
    public void setUp() throws Exception {
        session = HibernateSessionFactory.getCurrentSession();
    }

    @After
    public void tearDown() throws Exception {
        session.close();
    }

}
时间: 2024-10-10 01:44:10

hql语句中的select字句和from 字句的相关文章

HQL语句中数据类型转换

我们需要从数据库中取出序号最大的记录,想到的方法就是使用order by子句进行排序(desc倒序),然后取出第一个对象,可是当初设计数据库时(我们是在原来的数据库的基础上开发新系统),竟然将序号字段的类型设成了varchar2,真是让人郁闷,这样的话,如果排序的话,就是对字符串排序,12是比2小的数,那么就需要转换一下类型. 以下写法调整中是错误的,不能执行,报空指针错误:select cast(t.a as Integer) from table_1 t 我也使用了这段代码,同样报空指针异常

Hibernate的HQL语句中定位参数和具名参数传参

HQL查询: 1.有关hql 查询语句中的问好参数形式,如果出现多个问号,这对后面参数就比较麻烦. 如:from Student  student where student.name = ? and student.age=?.... 对这样的赋值,容易出错 可以采用另一种赋值的方法 如:from Student  student where student.name =:var1 and student.age=:var2.... query.setString("var1",&q

SQL语句中的select高级用法

为了更好的了解下面的知识点,我们先创建两张表并插入数据. # 学生表 +----+-----------+------+--------+--------+--------+-----------+ | id | name | age | height | gender | cls_id | is_delete | +----+-----------+------+--------+--------+--------+-----------+ | 1 | 小明 | 18 | 180.00 | 女

怎样在hibernate的HQL语句中使用mysql 的自定义函数?

问题:怎样在hibernate中使用mysql的函数? 1.hibernate支持原生态的sql语句查询,使用session.createSQLQuery()创建查询对象: 2.怎样在hql中使用mysql函数呢? 这时就需要重新定义hibernate的方言(dialect),将你需要用到的进行注册:  这里提到一个方言(dialect)的概念: Hibernate底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持使用标准SQL语句,但所有数据库都对标准SQL进行了一些扩展,所以

hibernate中hql语句中list和iterate区别

1.使用list()方法获取查询结果,每次发出一条语句,获取全部数据.2.使用iterate()方法获取查询结果,先发出一条SQL语句用来查询满足条件数据的id,然后依次按照这些id查询记录,也就是要执行N+1条SQL语句(N为符合条件的记录数) 两次执行list()方法,每次执行都是发出一条SQL语句,查询所有数据.下面看看两次执行iterate()方法的输出情况两次执行iterate()方法,第一次执行时发出了N+1条SQL语句,而第二次执行,则只发出一套SQL语句,与先执行list()方法

HQL语句中的join fetch

from Paper as paper join fetch paper.authors as authors where authors.id='xxxx'; from Paper as paper join fetch paper.authors where paper.authors.id='xxxx'; 这两个语句有什么区别呢?通过最终生成的sql发现. 上面HQL生成最终sql(部分) from s_paper paper inner join s_paper_author autho

hql语句中的分页显示

1 public List<User> getUserList(int pageInfo) { 2 DBUtil dbutil = new DBUtil(); 3 Session session = dbutil.openSession(); 4 int pageSize = 5;//页面大小 5 int page =pageSize*(pageInfo-1);//起始的offset 6 String hql ="from User"; 7 List<User>

Hibernate中HQL语句中list与iterate区别

session.createQuery("from Classes").list() session.createQuery("from Classes").iterate(); 这两者有什么区别    *  发出sql语句的不同    *  利用缓存的不同

HQL语句查询

/** *  */package com.b510.example; import java.util.Iterator;import java.util.List;import java.util.Map; import org.hibernate.Criteria;import org.hibernate.FetchMode;import org.hibernate.Query;import org.hibernate.Session; /** *  * @author XHW *  * @