ps = conn.prepareStatement("SELECT tid,jdp_response FROM jdp_tb_trade WHERE tid IN (?) ORDER BY created DESC");
ps.setString(1, "3152892500240988,3152893300713891");

本人如上使用 prepareStatement 结果只能查询出来一条数据,也不报错,调试了一天啊!!!尝试了各种办法 都没成功。后来突发奇想知道原因了;我如上设置,最终执行的sql语句可能是:

SELECT tid,jdp_response FROM jdp_tb_trade WHERE tid IN ('3152892500240988,3152893300713891') ORDER BY created DESC 

而我想真正执行的SQL语句是:
SELECT tid,jdp_response FROM jdp_tb_trade WHERE tid IN (3152892500240988,3152893300713891) ORDER BY created DESC

那么由于in()里 有多个参数,所以需要多个?号 多个setLong才行。即in(?,?,?.....)
怎么办呢;
看了很多网上的做法,我自己写出了我自己的写法如下:
            String tids = "3152892500240988,3152893300713891";
String[] tidsAry = tids.split(",");
StringBuffer stringBuffer = new StringBuffer("?");
for (int i = 0; i <= tidsAry.length - 2; i++)
{
stringBuffer.append(",?");
}
System.out.println(stringBuffer.toString());
ps = conn.prepareStatement("SELECT tid,jdp_response FROM jdp_tb_trade WHERE tid IN (".concat(stringBuffer.toString()).concat(") ORDER BY created DESC"));
System.out.println(tidsAry.length);
for (int i = 0; i <= tidsAry.length - 1; i++)
{
System.out.println(i);
ps.setLong(i + 1, Long.parseLong(tidsAry[i]));
} ResultSet rs = ps.executeQuery();
while (rs.next()){ System.out.println(rs.getString(1));
}
												

PreparedStatement 查询 In 语句 setArray 等介绍。的更多相关文章

  1. (转载)SQL语句中Group by语句的详细介绍

    转自:http://blog.163.com/yuer_d/blog/static/76761152201010203719835 SQL语句中Group by语句的详细介绍              ...

  2. mysql进阶(六)模糊查询的四种用法介绍

    mysql中模糊查询的四种用法介绍 这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下. 下面介绍mysql中模糊查询的四种用法: 1 %: 表示任意0个或多个字符.可匹配任意类型 ...

  3. 封装一个 员工类 使用preparedStatement 查询数据 (1)

    创建员工类  自动生成get set 方法 package cn.hph; public class emp { //定义表中的属性 private int id; private String en ...

  4. Oracle 查询(SELECT)语句(一)

    Ø  简介 本文介绍 Oracle 中查询(SELECT)语句的使用,在 SQL 中 SELECT 语句是相对内容较多的,也是相对比较复杂一点的,所以这里拿出来单独学习. 首先,我们先来理一下思路,我 ...

  5. 查询sql语句所花时间

    --1:下面这种是SQL Server中比较简单的查询SQL语句执行时间方法,通过查询前的时间和查询后的时间差来计算的: declare @begin_date datetime declare @e ...

  6. discuz 万能SQL查询调用语句写法

    首先在最底层source\class\table写入底层安全调用文件例如:table_common_friendlink.php 代码: <?php /** * [Discuz!] (C)200 ...

  7. 跨服务器查询sql语句样例

    若2个数据库在同一台机器上:insert into DataBase_A..Table1(col1,col2,col3----)select col11,col22,col33-- from Data ...

  8. 使用PreparedStatement 查询一条数据 封装成一个学生的Student1对象

    package cn.lijun.entity; public class Student1 { private int id; private String sname; private int g ...

  9. Django查询SQL语句

    Django查询SQL语句 # 1 res=models.Book.objects.all() # print(res)#<QuerySet [<Book: Book object> ...

随机推荐

  1. 解题:USACO07FEB The Cow Lexicon

    题面 第一次做Trie上dp,感谢 @i207M 的资瓷 对子串们建立一棵Trie,设$dp[i][j]$表示到母串第$i$位为止在$Trie$上的$j$号节点时的最小修改数量,然后就可以枚举母串各位 ...

  2. fzyzojP2119 -- 圆圈游戏

    说白了,就是这个样子: 这个玩意明显是一个优美的树形结构 是个森林 然后建个虚点0,并且w[0]=0,然后树形dp即可 f[x]=max(w[x],∑f[son]) 难点是:树怎么建? 就要上计算几何 ...

  3. navicat执行大容量的.sql文件时的设置

    如果有主外键关联等,执行报错,则去掉中间的对勾保留第三个对勾试试.第三个对勾 是 手动提交(不自动提交,估计是全部导入到数据库中之后再一起提交,而不是导入一条sql语句就提交一次) 如果同时不勾选第2 ...

  4. Dockerfile 部署 nodejs

    1.编写.dockerignore 构建镜像时,并不需要node_modules目录等内容,可以使用.dockerignore忽略一些文件 # .dockerignore Dockerfile nod ...

  5. Ansible2:主机清单

    目录 Hosts and Groups(主机与组) 简单的主机和组 端口与别名 指定主机范围 使用主机变量 组内变量 组的包含与组内变量 Patterns(主机与组正则匹配部分) 1. 表示所有的主机 ...

  6. Navicat数据备份

    备份:点击数据库---数据传输 目标:备份地点,数据会传送到yaozh_backup 数据传输成功

  7. 使用Java API的5个技巧

    原文出处:CSDN邓帅 本文介绍了一些关于Java API安全和性能方面的简单易用的技巧,其中包括保证API Key安全和开发Web Service方面中在框架方面选择的一些建议. 程序员都喜欢使用A ...

  8. 新建springboot项目启动出错 Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

    错误信息入下: 2018-06-23 01:48:05.275 INFO 7104 --- [ main] o.apache.catalina.core.StandardService : Stopp ...

  9. python 日期时间处理

    # 获取日期: import datetime #调用事件模块 today =datetime.date.today() #获取今天日期 deltadays =datetime.timedelta(d ...

  10. Android 5.0 最应该实现的8个期望

    毫无疑问,Android 5 将是令人兴奋的操作系统,因为 Android4.0 至 4.4 版本之间并没有显著的差异,显然谷歌会在 5.0 版本中进行一些较大幅度的革新.那么,代号为“柠檬芝士蛋糕” ...