社区
Java EE
帖子详情
hibernate中,根据指定的批量ID查找
Simple_Key
2010-01-18 02:44:59
从XML里面读取出几个ID,我将结果拼接成 '1012','1013','1014' 这种格式,
List tbalist = session.createQuery("from TbActual tba where tba.relevantID in(" + allId + ")").list();
这句代码出来问题 ,请各位大虾帮看看,并说明下原因
谢谢了
...全文
396
14
打赏
收藏
hibernate中,根据指定的批量ID查找
从XML里面读取出几个ID,我将结果拼接成 '1012','1013','1014' 这种格式, List tbalist = session.createQuery("from TbActual tba where tba.relevantID in(" + allId + ")").list(); 这句代码出来问题 ,请各位大虾帮看看,并说明下原因 谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
crazylaa
2010-01-18
打赏
举报
回复
[Quote=引用 11 楼 simple_key 的回复:]
是否还有更好的方法来解决,另外,有批量处理的例子可以贴下。结贴率100%,稍微好点的帖子都把分给完了,这个问题还没
[/Quote]
批量的,不知道你要的是不是这个:
public static void readFileWriteBack(String fileName, Connection con)
throws Exception {
String s = "";
File f = new File(fileName);
if (!f.exists()) {
throw new Exception("file doesn't exist....");
}
BufferedReader br = null;
PreparedStatement pstmt = null;
try {
br = new BufferedReader(new InputStreamReader(
new FileInputStream(f)));
String sql = "insert into tbl_report(a,b,c,d)"
+ "values(?,?,?,'2009-12-07')";
pstmt = con.prepareStatement(sql);
// 循环外部准备好prepareStatement;
while ((s = br.readLine()) != null) {
if (s.indexOf("合计") > 0) {
continue;
}
String[] c = s.split("\t");
printArray(c);
if (c.length == 3) {
// 加入批量参数
pstmt.setString(1, c[0]);
pstmt.setString(2, c[1]);
pstmt.setString(3, c[2]);
pstmt.addBatch();
}
}
// 一次执行。
pstmt.executeBatch();
System.out.println("file write back finished");
} catch (Exception e) {
throw e;
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
BearKin
2010-01-18
打赏
举报
回复
[Quote=引用 11 楼 simple_key 的回复:]
是否还有更好的方法来解决,另外,有批量处理的例子可以贴下。结贴率100%,稍微好点的帖子都把分给完了,这个问题还没
[/Quote]
你的查询条件在那放着呢 不用IN也是OR 还有别的招么?
islandrabbit
2010-01-18
打赏
举报
回复
mark
Simple_Key
2010-01-18
打赏
举报
回复
是否还有更好的方法来解决,另外,有批量处理的例子可以贴下。结贴率100%,稍微好点的帖子都把分给完了,这个问题还没
bunrise
2010-01-18
打赏
举报
回复
DetachedCriteria criteria = DetachedCriteria.forClass(Entity.class);
criteria.add(Restrictions.in(params, array));
ljjining
2010-01-18
打赏
举报
回复
少个对象
Simple_Key
2010-01-18
打赏
举报
回复
[Quote=引用 7 楼 bearkin 的回复:]
引用 6 楼 simple_key 的回复:
引用 5 楼 bearkin 的回复:
session.createQuery("from TbActual tba where tba.relevantID in(" + allId + ")").list();
你可以把语句输出下么 不过既然你说是int型呢 那么
"'1012','1013','1014'"是不是应该改成
"1012,1013,1014"
Sqlserver支持这种模式的,可以用String类型的查int,但是不可以用int的查String.
换下看看..
[/Quote]
HIBERNATE最后将之转义为SQL语句。。。我自己解决掉了。。。。
BearKin
2010-01-18
打赏
举报
回复
[Quote=引用 6 楼 simple_key 的回复:]
引用 5 楼 bearkin 的回复:
session.createQuery("from TbActual tba where tba.relevantID in(" + allId + ")").list();
你可以把语句输出下么 不过既然你说是int型呢 那么
"'1012','1013','1014'"是不是应该改成
"1012,1013,1014"
Sqlserver支持这种模式的,可以用String类型的查int,但是不可以用int的查String.
[/Quote]
换下看看..
Simple_Key
2010-01-18
打赏
举报
回复
[Quote=引用 5 楼 bearkin 的回复:]
session.createQuery("from TbActual tba where tba.relevantID in(" + allId + ")").list();
你可以把语句输出下么 不过既然你说是int型呢 那么
"'1012','1013','1014'"是不是应该改成
"1012,1013,1014"
[/Quote]
Sqlserver支持这种模式的,可以用String类型的查int,但是不可以用int的查String.
BearKin
2010-01-18
打赏
举报
回复
session.createQuery("from TbActual tba where tba.relevantID in(" + allId + ")").list();
你可以把语句输出下么 不过既然你说是int型呢 那么
"'1012','1013','1014'"是不是应该改成
"1012,1013,1014"
Simple_Key
2010-01-18
打赏
举报
回复
[Quote=引用 2 楼 warison2008 的回复:]
使用criteria方式
[/Quote]
能具体点吗?谢谢了
Simple_Key
2010-01-18
打赏
举报
回复
[Quote=引用 1 楼 bearkin 的回复:]
把语句输出下 你的那个属性是什么类型的 是VARCHAR么? 还是NUMBER?
[/Quote]
是int类型的
烟雨鹏城
2010-01-18
打赏
举报
回复
使用criteria方式
BearKin
2010-01-18
打赏
举报
回复
把语句输出下 你的那个属性是什么类型的 是VARCHAR么? 还是NUMBER?
hibernate
根据
id
查找
/**根据
id
查找
*/public static User1 query(String
id
) { User1 u = null; try { session =
Hibernate
SessionFactory.getSession(); Transaction tran = session.beginTransaction(); u = (User1) session.get
hibernate
根据
id
进行查询操作
根据上一篇文章,学习最基本插入操作,在本文章
中
主要是最基本的根据
id
进行查询操作: (1)定义一个工具类,如下: package com.ba
id
u.util; import org.
hibernate
.SessionFactory; import org.
hibernate
.cfg.Configuration; public class
HIbernate
Utils { ...
hibernate
的
批量
删除
呵呵,来说说
hibernate
的
批量
删除;一般而言,
hibernate
的
批量
删除的写法有两种,一种是
hibernate
内置的
批量
删除,不过他的
批量
删除是将每条记录逐一生成删除语句,其效率极低,当然我们可以使用抓取策略给其进行优化,不过这只是亡羊补牢的方法,效率的提升依然不能让我们满意,很不推荐使用;另一种是由"拼串"形成的HQL语句,其能够形成一条语句,从而是效率得到最大的提升;我们先说"拼串"形
hibernate
批量
修改,
批量
删除 .
在
Hibernate
应用
中
如何处理
批量
更新和
批量
删除?
批量
更新是指在一个事务
中
更新大
批量
数据,
批量
删除是指在一个事务
中
删除大
批量
数据。以下程序直接通过
Hibernate
API
批量
更新CUSTOMERS表
中
年龄大于零的所有记录的AGE字段: tx = session.beginTransaction(); Iterator customers=session.find("f
Hibernate
获取自增主键
ID
的方法
今天在开发的过程
中
,遇到了前端队友提出这样子的需求:
批量
保存一组标签的数据 并将这些标签插入数据库时自增产生的
id
封装成数组返回 这里就涉及到一个,如何获取自增时自动赋值的
Id
的问题。 让我们先来了解一下save方法的执行过程 它会先将对象加入缓存,从而变为持久化对象 查看映射文件,并根据
指定
的生成器为持久化对象分配
Id
计划执行一个insert语句,把对象当前的属性值组装到ins...
Java EE
67,535
社区成员
225,852
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章