1

我必须在不知道列类型的情况下使用preparedstatement/statement 运行jdbc 更新查询。我有一个查询说'更新表设置状态=?哪里id=?' 我得到一个值的映射,如 {("status"="123"), ("id"="546")}

现在我不知道列类型,是否有任何通用方法可以使用 jdbc 运行此查询?

而不是运行 - ps.setString(1,map.get(("status")); 因为我不知道 DB 中状态字段的列类型(它也可能是 int)

请在不使用 spring jdbc 模板的情况下帮助我解决这个问题。

4

1 回答 1

0

ps.setString(1,map.get(("status"))也适用于整数,你只需要注意value你输入的整数列是int类型的。

以下代码说明:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;


public class SOJDBC 
{
public static void main(String rgs[])
{
    Connection con = DBConnection.getConnection("TEMP");
    try 
    {
        PreparedStatement pstmt = con.prepareStatement("insert into STUDENT(ROLLNO,NAME,AGE) values(?,?,?)");
        pstmt.setString(1, "1");    //column type is integer, will work because the value is of int type
        pstmt.setString(2, "Bhushan");
        pstmt.setString(3, "25");   //column type is integer, will work because the value is of int type
        pstmt.executeUpdate();
    }
    catch (SQLException e) 
    {
        e.printStackTrace();
    }
}
}
于 2013-02-12T04:03:25.907 回答