Java软件开发基础知识梳理之(2)------动态创建PreparedStatement解决SQL中带的in条件
来源:互联网 发布:飞天怎么样知乎 编辑:程序博客网 时间:2024/05/20 07:35
示例代码如下所示,虽然可以解决PreparedStatement的SQL语句中带in 条件的问题,但无法享受PreparedStatement的缓存带来的好处
package com.justin.pk4;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import java.util.Set;import javax.xml.crypto.Data;public class DynamicPreparedStatement {public static String preparePlaceHolderStr(int length) {StringBuilder builder = new StringBuilder();for (int i = 0; i < length;) {builder.append("?");if (++i < length) {builder.append(",");}}return builder.toString();}public static void setValueForPlaceHolder(PreparedStatement preparedStatement, Object... values) throws SQLException {for (int i = 0; i < values.length; i++) {preparedStatement.setObject(i + 1, values[i]);}}public List<Data> find(Set<Long> ids) throws SQLException {String SQL_FIND = "SELECT id, name, sex FROM t_student WHERE id IN (%s)"; Connection connection = null; PreparedStatement statement = null; ResultSet resultSet = null; List<Data> list = new ArrayList<Data>(); String sql = String.format(SQL_FIND, preparePlaceHolderStr(ids.size())); try{ connection = getConnection(); statement = connection.prepareStatement(sql); setValueForPlaceHolder(statement, ids.toArray()); resultSet = statement.executeQuery(); while (resultSet.next()) { //TODO } } finally { //TODO close connection } return list;}private Connection getConnection(){ Connection connection = null; //TODO return connection;}}
0 0
- Java软件开发基础知识梳理之(2)------动态创建PreparedStatement解决SQL中带的in条件
- Java软件开发基础知识梳理之(1)------Oracle索引
- Java软件开发基础知识梳理之(6)------事务相关知识点
- Java软件开发基础知识梳理之(7)------Hibernate查询数据
- Java软件开发基础知识梳理之(8)------Hibernate并发控制
- Java软件开发基础知识梳理之(9)------Hibernate抓取策略
- Java软件开发基础知识梳理之(10)------Hibernate二级缓存
- Java软件开发基础知识梳理之(11)------Java中的GC操作及相关概念
- Java软件开发基础知识梳理之(3)------JDCB操作数据库性能优化策略
- Java软件开发基础知识梳理之(4)------HashTable与HashMap区别
- Java软件开发基础知识梳理之(5)------Hibernate N + 1产生原因及解决办法
- 解决mysql的in条件中参数是带引号的字符串的时候查询失效
- Java中SQL遇到字段in条件的解决方法
- java开发之mysql的PreparedStatement
- 在PreparedStatement中,sql使用in操作符的问题
- 软件开发之技能梳理
- sql sever 创建带条件的唯一性索引
- Java中带条件的查询
- 上课笔记-电子市场及电子消费品(一)
- 代码实现模糊查询(正则实现),比如在多表查询的情况下“
- 深入了解MediaServer-1
- c++学习建议
- Mysql关键字
- Java软件开发基础知识梳理之(2)------动态创建PreparedStatement解决SQL中带的in条件
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
- 日本公共廁所不爲人知的新功能
- seo做个出色的地图导航
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览
- struts+hibernate+spring jar包官网下载地址【转】
- 【论坛好帖收藏】之程序员恶性循环
- 深入了解mediaserver-2
- 如何才能算一个合格的SEO