sqlquery
1. sqlQuery与Query有什么区别吗
hql是面向对象的 。
其实还是转成了sql语句
hql在数据库通用,切换数据库方言就可以
sql在不同数据库中语法有些不同
还是sql比较灵活一些
HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖 Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。
sql只是结构化查询语言,只是面向数据检索,不具有面向对象的特征,所以HQL更加符合开发标准
2. SqlQuery是不是延迟加载
配置文件中:
<class name="LoginUser" table="LoginUser" lazy="false">
lazy改成false就会取消懒加载,也叫延时加载。
之所以显示三次查询语句。是因为你调用了三次query.list()方法。建议调用一次把list保存在一个变量中。
即使显示三次查询语句也不一定访问了数据库三次。因为hibernate有缓存。
3. hibernate执行createSQLQuery后,query.list怎么转换成List
List<Object[]> list =session.createSQLQuery(sql).addScalar("total_score",Hibernate.INTEGER).list();
然后遍历 list
for(Object[] obj:list){
obj[0] 就是 total_score
obj[1] 就是env_score
obj[2] 就是ser_score
}
4. hibernate mapping中的sql-query怎么使用
我写个简单的例子,楼主可以参考下public int getLogin(String username,String password)
{ String sql="select * from user_table where username=? and password=?";
SQLQuery query=getSession().createSQLQuery(sql).addEntity(UserTable.class);
query.setString(0,username);
query.setString(1,password);
return Integer.parseInt(query.uniqueResult().toString());
}
public static void main(String[] args) {
new UserTableDAO().getLogin("zhang","yuan");
}
5. SQLQuery与Query有什么区别吗
hiabernate 中createQuery与createSQLQuery区别
前者用的hql语句进行查询,
后者可以用sql语句查询 ;
前者以hibernate生成的Bean为对象装入list返回
后者则是以对象数组进行存储;
所以使用createSQLQuery有时候也想以hibernate生成的Bean为对象装入list返回,就不是很方便 ,但是createSQLQuery有这样一个方法可以直接转换对象
Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class);
XXXXXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean。
6. hibernate createSQLQuery返回处理
不解释 垃圾靠边站
public void exevalusSql(String sql,int cols)
{
getConn();
session.beginTransaction();
SQLQuery sq=session.createSQLQuery(sql);
List obs= (List)sq.list();
String[][] ss=new String[obs.size()][cols];
for (Object object : obs) {
Object[] a=(Object[])object;
for(int j=0;j<a.length;j++)
{
System.out.println(a[j].toString());
}
}
session.getTransaction().commit();
HibernateSessionFactory.getSessionFactory().close();
}
7. sqlquery中MySql的条件模糊查询参数怎么写
如果@是特殊符号作为标识表示这是个替代字符的话,你为什么不queryMap.put("userName", "%"+userName+"%");呢?
8. SQLQuery query = session.createSQLQuery("{Call proc(,,)}");过程返回参数是游标该怎么传值
存储过程中游标是输出参数,如果你要取得结果集,不用试用存储过程这么麻烦。如果非要试用存储过程,游标的定义也应该在存储过程中实现,在java中去获取过程返回的结果集。
9. hibernate 中 createSQLQuery() 用法,我想让它返回一个book对象,怎么写语句。
看上去,你的写法应该没啥问题。
不过这个b又不是占位符,你又是单表的查询,是不是应该把b去掉啊。
SQLQuery sqlquery = s.createSQLQuery("select * from Book b where b.name = bookName").addEntity(Book.class);
参考:http://hi..com/liheng666/blog/item/6b38d3c472d271a08226aca7.html
10. Hibernate SQLQuery查询报错
六、case ... when ... then ... else .... end (等价于java中的switch语句)
case
when (条件表达式1) then 语句1
when (条件表达式2) then 语句2
else 语句N
end