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