JDBC PreparedStatement 预编译语句 动态添加条件-SQL参数不定
我是看这个帖子来做的,我只是把过程写的更小白一点。 JDBC查询动态封装 实现的效果是:动态添加xx=?这些条件 SELECT id FROM t_table WHERE id=? AND sex = ? 拼接预编译语句 开始我们要用到两个Vector来存储 参数值和参数类型 Vector<Object> vParamValue = new Vector<Object>(); Vector<String> vParamType = new Vector<String>(); 接着声明一个带初始条件的SQL字符串,目的是之后拼接条件时,就不用考虑是否加AND的问题 String sql = "SELECT id FROM t_table WHERE id > 0 "; 接着判断条件参数是否获取到,以决定是否拼接该条件 if(!name.equals("")) { sql += " AND name=? "; vParamValue.add(name); vParamType.add("String"); conditionCount++;//用来统计拼接的条件个数,方便后面给预编译语句的条件参数遍历赋值 } 再接着是给语句对象参数赋值 (之前不明白这里怎么把参数一一对应起来的。 后来想了下,其实很简单。 因为SQL条件位置与放在Vector中的参数值,参数类型,三者是一一一对应的。)