java - 如何向数组插入日期或NULL

标签 java oracle jdbc

我有以下问题。 我在项目中使用 JDBC,并制作了简单的方法将数据插入数据库。

我的问题是:当我想插入诸如 sysdate 或只是 NULL 之类的内容来自动递增时该怎么办?对于我的方法,我仅发送字符串,并且将 NULL 写入字符串不起作用。

您能给我一些如何改进的建议吗?

这是查询中带有常量 null 的代码,但这不是我想要的。

public static void insertInto(String Table, ArrayList<String> values) throws SQLException
{
    Connection conn = JavaConnectDB.ConnectDb();
    OraclePreparedStatement pst = null;    
    StringBuilder Query = new StringBuilder("INSERT INTO " + Table + " VALUES (NULL, ");

    for (int i = 0; i < values.size(); i++)
    {
        Query.append("? ");
        if (i + 1 != values.size())
            Query.append(", ");
    }
    Query.append(")");

    pst = (OraclePreparedStatement) conn.prepareStatement(Query.toString());

    for (int i = 0; i < values.size(); i++)
    {
        pst.setString(i + 1, values.get(i));
    }

    pst.executeUpdate();
}

此方法创建类似“INSERT INTO TABLE VALUES (NULL, ?, ? ,?)”的查询,然后用数组中的值填充空白。

最佳答案

有java.sql.PreparedStatement.setNull(int, int)

尝试,例如

pst.setNull(1, Types.BIGINT);
for (int i = 1; i < values.size(); i++)
{
    pst.setString(i + 1, values.get(i));
}

Types.BIGINT 更改为适合您的列的类型。 请注意,values.get(0) 只是被忽略,但应该出现在数组中。

关于java - 如何向数组插入日期或NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37431954/

相关文章:

oracle - 多列的唯一约束

java - 如何计算受级联影响的行

java - 如何比较 float

java - Android textview - 我无法让它继续

java - 批量插入的最佳 JPA ID 生成策略

jdbc - Logstash:错误 org.postgres.Driver 未加载

Java:MySQL查询。获取生成的 ID

java - 突出显示 JTable 行中找到的数据

java - request.getParameter - 无法读取 &

oracle - 错误:在soa12c中找不到或加载主类weblogic.Server