如何为java预处理语句插入使用tablename变量我正在使用java PreparedStatment对象来构造一系列批量INSERT查询。查询语句的格式是......String strQuery = "INSERT INTO ? (col1, col2, col3, col4, col5) VALUES (?,?,?,?,?,?);";...所以字段值和表名都是变量(即,我有多个具有相同列格式的表,其中每个插入将指向不同的一个)。如果我删除“?”,我可以让执行工作 tablename变量和硬代码,但每个预处理语句将被插入到不同的表中,因此需要保留一个变量,我在执行批处理查询之前立即填充...stmt.setString(1, "tableName1");我怎么能让这个变成动态变量呢?
3 回答
慕哥9229398
TA贡献1877条经验 获得超6个赞
您可以使用占位符代替表名,然后将其替换为您的表名。
String strQuery = "INSERT INTO $tableName (col1, col2, col3, col4, col5) VALUES (?,?,?,?,?,?);";
当你知道tablename时替换
String query =strQuery.replace("$tableName",tableName);stmt =conn.prepareStatement(query);
慕桂英3389331
TA贡献2036条经验 获得超8个赞
一种替代方案可能是String.format
:
例如
String sql = String.format("INSERT INTO $1%s (col1, col2, col3, (etc)", myTablename);
添加回答
举报
0/150
提交
取消