java SSH第一章学习内容(HQL查询)

HQL:查询日志 8个例子

例子准备工作

1.先自动生成实体类以及DAO类
2.创建一个HqlSelect类继承UserDAO,用于直接调用Session使用
3.测试类调用HqlSelect类方法

注意:query.uniqueResult().toString()使用查询一行数据,query.list()结果集的数据
           q.setInteger(1, 10);    mysql坐标从1开始,oracle从0开始

1.查询所有(对象类型)

public List<String> findAll2(){
        Session session =super.getSession();
        String hql="select u.uname from User u";
        Query q = session.createQuery(hql);        //执行SQL语句
        List<String> it = q.list();                //使用Qurey.list返回集合
        for (String it2:it) {
            System.out.println(it2);
        }
        return it;
    }

2.查询部分(String类型)
    public List<String> findAll2(){
        Session session =super.getSession();
        String hql="select u.uname from User u";
        Query q = session.createQuery(hql);        //执行SQL语句
        List<String> it = q.list();                //使用Qurey.list返回String集合
        for (String it2:it) {
            System.out.println(it2);
        }
        return it;
    }

3.查询两列(Object类型)
    public List<Object> findAll3(){
        Session session =super.getSession();
        String hql="select u.uname,u.upwd from User u";
        Query q = session.createQuery(hql);
        List<Object> objs = q.list();
        for (Object obj:objs) {
            Object[] obj2=(Object[]) obj;
            System.out.println(obj2[0]);
            System.out.println(obj2[1]);
        }
        return objs;
    }


4.参数查询
    public List<User> findAll4(){
        Session session=super.getSession();
        String sql="from User u where u.uid=?";
        Query q= session.createQuery(sql);
        q.setInteger(1,2);
        List<User>it = q.list();
        for (User it2:it) {
            System.out.println(it2.getUname()+it2.getUpwd());
        }
        return it;
    }


5.命名查询
    public List<User> findAll5(){
        Session session=super.getSession();
        String sql="from User u where u.uid=:a";
        Query q= session.createQuery(sql);
        q.setInteger("a",3);
        List<User>it = q.list();
        for (User it2:it) {
            System.out.println(it2.getUname()+it2.getUpwd());
        }
        return it;
    }


6.查询结果只返回一个值
    public int findall6(){
        Session session=super.getSession();
        String sql="select count(u) from User u";
        Query q = session.createQuery(sql);
        int count=Integer.parseInt(q.uniqueResult().toString());
        System.out.println(count);
        return count;
    }


7.查询结果一行数据
    public int findall7(){
        Session session=super.getSession();
        String sql="select count(u) from User u where u.uid=:uid";
        Query q = session.createQuery(sql);
        q.setInteger("uid", 10);
        int count=Integer.parseInt(q.uniqueResult().toString());
        System.out.println(count);
        return count;
    }


8.分页查询
    public List<User> findall8(int num1,int num2){
        Session session=super.getSession();
        String sql="from User u";
        Query q = session.createQuery(sql);
        q.setFirstResult((num1-1)*num2);
        q.setMaxResults(num2);
        List<User> li = q.list();
        for (User l:li) {
            System.out.println(l.getUname()+l.getUpwd());
        }
        return li;
    }


参考代码:

HqlSelect类

public class HqlSelect extends UserDAO{
    //查询所有(对象类型)
    public List<User>findAll(){
        Session session=super.getSession();
        String hql="from User";
        Query query=session.createQuery(hql);
        List<User> it = query.list();
        for (User it1:it) {
            System.out.println(it1.getUid()+it1.getUname()+it1.getUpwd());
        }
        return it;
    }
    //查询部分(String类型)
    public List<String> findAll2(){
        Session session =super.getSession();
        String hql="select u.uname from User u";
        Query q = session.createQuery(hql);        //执行SQL语句
        List<String> it = q.list();                //使用Qurey.list返回集合
        for (String it2:it) {
            System.out.println(it2);
        }
        return it;
    }
    //查询两列(Object类型)
    public List<Object> findAll3(){
        Session session =super.getSession();
        String hql="select u.uname,u.upwd from User u";
        Query q = session.createQuery(hql);
        List<Object> objs = q.list();
        for (Object obj:objs) {
            Object[] obj2=(Object[]) obj;
            System.out.println(obj2[0]);
            System.out.println(obj2[1]);
        }
        return objs;
    }
    //参数查询
    public List<User> findAll4(){
        Session session=super.getSession();
        String sql="from User u where u.uid=?";
        Query q= session.createQuery(sql);
        q.setInteger(1,2);
        List<User>it = q.list();
        for (User it2:it) {
            System.out.println(it2.getUname()+it2.getUpwd());
        }
        return it;
    }
    //命名查询
    public List<User> findAll5(){
        Session session=super.getSession();
        String sql="from User u where u.uid=:a";
        Query q= session.createQuery(sql);
        q.setInteger("a",3);
        List<User>it = q.list();
        for (User it2:it) {
            System.out.println(it2.getUname()+it2.getUpwd());
        }
        return it;
    }
    //查询结果只返回一个值
    public int findall6(){
        Session session=super.getSession();
        String sql="select count(u) from User u";
        Query q = session.createQuery(sql);
        int count=Integer.parseInt(q.uniqueResult().toString());
        System.out.println(count);
        return count;
    }
    //查询结果一行数据
    public int findall7(){
        Session session=super.getSession();
        String sql="select count(u) from User u where u.uid=:uid";
        Query q = session.createQuery(sql);
        q.setInteger("uid", 10);
        int count=Integer.parseInt(q.uniqueResult().toString());
        System.out.println(count);
        return count;
    }
    //分页查询
    public List<User> findall8(int num1,int num2){
        Session session=super.getSession();
        String sql="from User u";
        Query q = session.createQuery(sql);
        q.setFirstResult((num1-1)*num2);
        q.setMaxResults(num2);
        List<User> li = q.list();
        for (User l:li) {
            System.out.println(l.getUname()+l.getUpwd());
        }
        return li;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值