一般的话在用hibernate地表做查询的时候 ,都会写出这样的HQL语句
比如有一个用户表,字段有userName,passWord,nickName,Age等 。如果要在页面上显示出所有用户的用户名和昵称;那么一般我想大部分人会这么写吧
hql ="from User"
然后在jsp页面用EL表达示分别取出用户名称和昵称
${user.userName,user.nickName}
但是这样的查询语句和select * from user是没有区别的吧?但是一般不是不推荐在数据库查询的时候使用select *吗?这样不是对数据库的资源消耗很大吗?
可是如果我想用哪几个字段就查询哪几个的话,像这样
hql= "select userName,nickName from User";
可是在程序里再封闭的话也将会很麻烦,因为这样的话,还得在User类里加一个构造方法
user(userName,nickName){
this.userName = userName;
this.nickName = nickName
}
然后再对查询的list集合迭代封闭,
for(Iterator it = list.iterator();it.hasNext()){
Object[] ob = (Object[])it.next();
User user = new User(ob[0],ob[1]);
}当然还有一种更简单的方法
hql = "select new User(userName,nickName) from User";
但是同样也得有这个构造方法不过我想问的是,大家一般遇到这种情况都用哪种方法多一点,还有就是哪种方法是最优的?
比如有一个用户表,字段有userName,passWord,nickName,Age等 。如果要在页面上显示出所有用户的用户名和昵称;那么一般我想大部分人会这么写吧
hql ="from User"
然后在jsp页面用EL表达示分别取出用户名称和昵称
${user.userName,user.nickName}
但是这样的查询语句和select * from user是没有区别的吧?但是一般不是不推荐在数据库查询的时候使用select *吗?这样不是对数据库的资源消耗很大吗?
可是如果我想用哪几个字段就查询哪几个的话,像这样
hql= "select userName,nickName from User";
可是在程序里再封闭的话也将会很麻烦,因为这样的话,还得在User类里加一个构造方法
user(userName,nickName){
this.userName = userName;
this.nickName = nickName
}
然后再对查询的list集合迭代封闭,
for(Iterator it = list.iterator();it.hasNext()){
Object[] ob = (Object[])it.next();
User user = new User(ob[0],ob[1]);
}当然还有一种更简单的方法
hql = "select new User(userName,nickName) from User";
但是同样也得有这个构造方法不过我想问的是,大家一般遇到这种情况都用哪种方法多一点,还有就是哪种方法是最优的?
hql= "select userName,nickName from User";
可是在程序里再封闭的话也将会很麻烦,因为这样的话,还得在User类里加一个构造方法
user(userName,nickName){
this.userName = userName;
this.nickName = nickName
}底层的model里不是有set方法的吗?
我觉得这个应该类似于spring的设值注入,不用写构造器把...