【问题标题】:Inserting data into table向表中插入数据
【发布时间】:2012-02-09 16:23:11
【问题描述】:

晚上好。

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

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

错误内容如下 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();
    }

【问题讨论】:

    标签: java jdbc


    【解决方案1】:

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

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

    这应该可以解决问题。

    【讨论】:

    • (+1) 为了避免这种错误,请使用准备好的语句!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多