将数据插入表中

时间:2012-02-09 16:23:11

标签: java jdbc

晚上好。

我正在做一个基本练习,将数据插入Access数据库表,代码中存在语法错误,我正在努力查明。

希望能得到一些关于Syntax问题所在的帮助。

错误如下所示 java.sql.SQLException:[Microsoft] [ODBC Microsoft Access Driver]查询值和目标字段的数量不同。

public void addData(String ID, String name, String address, String type) throws SQLException
{
    int rowsadded;
    Statement statement = conn.createStatement();
    String queryString = "INSERT INTO Artists(ID, Name, Address, Type) VALUES (" + ID + ", '" + name + "', '" + address + ", " + type + "')";

    System.out.println(queryString);
    System.out.println(ID + "(ID) added to the database");
    rowsadded = statement.executeUpdate(queryString);
    System.out.println("Rows updated = " + rowsadded);
}

方法调用如下:

Insertingdata example;
    try
    {
        example = new Insertingdata();

        example.addData("15", "Bob Dylan", "Los Angeles", "Folk");

    }
    catch(SQLException se)
    {
        se.printStackTrace();
    }
    catch(ClassNotFoundException ce)
    {
        ce.printStackTrace();
    }

1 个答案:

答案 0 :(得分:4)

您在查询中错过了几个单引号,因此地址和类型被读取为单个值。将queryString行替换为:

String queryString = "INSERT INTO Artists(ID, Name, Address, Type) VALUES (" + ID + ", '" + name + "', '" + address + "', '" + type + "')";

这应解决问题。