我正在尝试使用JDBC创建一个insert语句。对于表,我试图插入包含82列的值。我想知道是否有一种方法可以调用insert函数并将值直接插入表中而不是指定每个列名? 例如:假设一个语句是:插入表(id,age,...)值(1,21,..)。 我不想在语句中指定列名(id,age和all)。有没有办法在不处理列名的情况下执行此操作?
答案 0 :(得分:1)
你可以这样做:
INSERT INTO table VALUES (1, 21, 345, ...)
...但是您必须确保在表格中提供 每个 列值,即使是可以为空的列值。而且您还必须确保按照数据库中定义的确切顺序提供它们。
帮自己一个忙,不要那样做。您现在可能会发现很烦人,必须明确列出所有列。但通过这样做:
答案 1 :(得分:0)
另一种选择是在MySql实例上编写存储过程,然后调用它。在这种情况下,您只需传入要写入的值,存储过程将执行实际插入。
这是一个简单的例子
public void callProc () throws Exception{
CallableStatement cs;
Connection con = getMySqlConnection();
cs = con.prepareCall("CALL getHash(?,?);");
cs.setString(1, "some string");
cs.setString(2, "some other string");
cs.execute();
}