如何在不知道列类型的情况下运行JDBC更新查询

时间:2013-02-12 03:57:34

标签: jdbc

我必须使用preparedstatement / statement运行jdbc更新查询,而不知道列类型。 我有一个查询说'更新表设置状态=?其中id =? “ 我得到的值为{(“status”=“123”),(“id”=“546”)}

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

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

请不要使用spring jdbc模板帮我解决这个问题。

1 个答案:

答案 0 :(得分: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();
    }
}
}