createsql
createQuery不是数据库的方法,这是hibernate的sql操作方法。
具体作用,是对查询语句的执行·,像“select * from tb_a...”这样的sql语句。
可以传参,通用方法有两种:
String hql = "from InventoryTask it where it.orgId=:orgId";
Session session = getSession();
Query query=session.createQuery(hql);
query.setString("orgId",orgId);
List list = query.list();
if(list!=null&&list.size()!=0){
return (InventoryTask)list.get(0);
}else{
return null;
}String hql = "from InventoryTask it where it.orgId=?,it.orgName"; Session session = getSession(); Query query=session.createQuery(hql); query.setString("0",orgId); query.setString(1,orgName) List list = query.list(); if(list!=null&&list.size()!=0){ return (InventoryTask)list.get(0); }else{ return null; }
② 关于Hibernate createSqlQuery中的mysql定义变量 @:=
你这是sql?没见过那个符号
③ 谁有create.sql这个文件
根据名字是创建表结构的文件,按你需要写的
④ 用hibernate2.1.7版本的执行createSQLQuery查询是三个参数说能告诉我一下啊。
net.sf.hibernate.Session
public Query createSQLQuery(String sql, String returnAlias, Class returnClass);
public Query createSQLQuery(String sql, String[] returnAliases, Class[] returnClasses);
第一个参数是select 语句 第二个 对查询到的数据付别名 第三个参数 ,是返回的数据的类型
一个论坛上 有讲 hibernate2.0 到 hibernate3.0的区别http://d.hatena.ne.jp/fivefourty/
⑤ JAVA中:session.createSQLQuery(sql).addEntity(entity).list();报错,在线等;
这种写法得到的字段不能命名别名,不然就这个错
⑥ 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();
}
⑦ 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
⑧ hibernate createSQLQuery(sql).executeUpdate 不执行
貌似是你的query已经读取了sql语句了,但是里面没值,你试试把Query query = session.createSQLQuery(sql);写到int result = query.executeUpdate();
这句话前面
⑨ hibernate一般使用createQuery还是createSQLQuery,能举例吗
createQuery 这里面是用HQL查询,通常在项目中用这个比较多。 返回值类型有List有对象有属性值。等等
createSQLQuery 这是用SQL语句查询。查询返回值是Object[]数组对象
⑩ 如何遍历由createSQLquery 进行联合查询得到的结果
需要遍历每条查询结果来进行某些操作,例如拆分查询结果的字符串就要通过循环来进行,以下给出了一种循环遍历的例子供大家参考。
假设表TblTest有两个字段:id, value, 而value的值在查到后需要拆分,如:'aa,bb,cc',就可利用以下循环来进行(拆分的例子可以参考另一篇文章:Sql Server中如何拆分字符串)。
/* tmp table that store the flag to indicate if this record is processed */
declare @TblTest_tmp table(
id decimal(18,0),
[flag] int
)
/* total count for the query result */
declare @totalcount int
declare @rownum int
select @totalcount = count(1) from TblTest
set @rownum = 1
while @rownum <= @totalcount
begin
declare @id decimal(18,0),
@value varchar(2000)
select top 1 @id=[id], @value=[value] from TblTest where flag=0
/* do sth for @value, e.g. select * from split(@value, ',') */
update @TblTest_tmp set flag = 1 where [id] = @id
set @rownum = @rownum + 1
end