【问题标题】:MySQL query INSERT in JavaJava中的MySQL查询INSERT
【发布时间】:2016-02-26 16:31:25
【问题描述】:

我正在使用 Netbeans,在这种方法中我有 som String 和 int 变量,我想将它们插入 MySQL 数据库。

我试过了,还是不行。

String sql = "INSERT INTO cars (Manufacturer, Color, Extra, Country, Price)" "VALUES (variableManufacturer, variableColor, variableExtra, variableCountry, variablePrice)";

表名汽车

Manufacturer, Color, Extra, Country, Price

所有的列都是VARCHAR,除了Price,它是一个int。

Netbeans 崩溃,它说找不到变量。有人吗?

【问题讨论】:

标签: mysql jdbc netbeans


【解决方案1】:

试试这个:

String sql = "INSERT INTO cars (Manufacturer, Color, Extra, Country, Price)";

sql + = "  VALUES (variableManufacturer, variableColor, variableExtra, variableCountry, variablePrice)";

【讨论】:

  • 我认为它也不会起作用,因为变量需要以其他方式处理,可能使用 + * ' 或其他方式。
【解决方案2】:

试试这个

String sql = "INSERT INTO cars(Manufacturer, Color, Extra, Country, Price) VALUES(variableManufacturer, variableColor, variableExtra, variableCountry, variablePrice)";

更新

我认为这个链接可以帮助你

Inserting records into a MySQL table using Java

【讨论】:

  • 我认为它也不会起作用,因为变量需要以其他方式处理,可能使用 + * ' 或其他方式。
【解决方案3】:

试试这个:)

String sql = "INSERT INTO cars (Manufacturer, Color, Extra, Country, Price) "
+ "VALUES ('"+variableManufacturer+"', '"+variableColor+"',
           '"+variableExtra+"', '" +variableCountry +"', 
           "+variablePrice+")";

【讨论】:

  • 这个答案被认为是不好的做法,因为它容易受到 SQL 注入攻击。
  • @user5165120 我强烈建议参考我的答案,不要使用这种方法。将来您将面临 SQL 注入攻击,这是不好的做法。
【解决方案4】:

您正在寻找的是 Java 中的 PreparedStatement

类似的东西;

PreparedStatement ps = connection.prepareStatement("INSERT INTO cars (Manufacturer, Color, Extra, Country, Price) VALUES (?,?,?,?,?)");

然后,您将对变量使用ps.SetXX() 方法,在您的情况下为VARCHAR,我认为它属于String 转换类型:JDBC - How to set char in a prepared statement

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    相关资源
    最近更新 更多