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;
    }
}

猜你喜欢

转载自blog.csdn.net/JayVergil/article/details/81915159