MySql语句JAVA中的转义逗号
我已经有一段时间没有使用MySql了。我在我的表中插入了一些数据。我试图插入一个逗号分隔的字符串作为我的TRAITS列的值 例如: “可爱、毛茸茸、懒惰” 我希望逗号也与这些单词一起插入,但是,我一直遇到一个语法错误:列计数与第1行的值计数不匹配MySql语句JAVA中的转义逗号,java,mysql,Java,Mysql,我已经有一段时间没有使用MySql了。我在我的表中插入了一些数据。我试图插入一个逗号分隔的字符串作为我的TRAITS列的值 例如: “可爱、毛茸茸、懒惰” 我希望逗号也与这些单词一起插入,但是,我一直遇到一个语法错误:列计数与第1行的值计数不匹配 final int ADMIN_ID = 1; final char comma = ','; try { this.connect_func(); statement = (Stateme
final int ADMIN_ID = 1;
final char comma = ',';
try {
this.connect_func();
statement = (Statement) connect.createStatement();
statement.executeUpdate("INSERT INTO ANIMALS (USER_ID , NAME , SPECIES , DOB , PRICE , TRAITS)" +
"VALUES" + "('"+ ADMIN_ID +"', 'Bella', 'Dog', '02/12/2019', '"+950.00+"', 'Sweet" + comma +" Hyper " + comma + " Cuddly "+ comma + " obedient')," +
"('"+ ADMIN_ID +"', 'Coco', 'Cat', '07/15/2016', '"+650.00+"', 'Lazy " + comma + " Cuddly" + comma + "Stubborn');");
statement.close();
return true;
} catch(Exception e) {
System.out.println(e);
statement.close();
return false;
}
只需删除价格小数点附近的引号 以下是您的解决方案:
final int ADMIN_ID = 1;
final char comma = ',';
try {
this.connect_func();
statement = (Statement) connect.createStatement();
statement.executeUpdate("INSERT INTO ANIMALS (USER_ID , NAME , SPECIES , DOB , PRICE , TRAITS)" +
"VALUES" + "('"+ ADMIN_ID +"', 'Bella', 'Dog', '02/12/2019', "+950.00+", 'Sweet" + comma +" Hyper " + comma + " Cuddly "+ comma + " obedient')," +
"('"+ ADMIN_ID +"', 'Coco', 'Cat', '07/15/2016', "+650.00+", 'Lazy " + comma + " Cuddly" + comma + "Stubborn');");
statement.close();
return true;
} catch(Exception e) {
System.out.println(e);
statement.close();
return false;
}
只需删除价格小数点附近的引号 以下是您的解决方案:
final int ADMIN_ID = 1;
final char comma = ',';
try {
this.connect_func();
statement = (Statement) connect.createStatement();
statement.executeUpdate("INSERT INTO ANIMALS (USER_ID , NAME , SPECIES , DOB , PRICE , TRAITS)" +
"VALUES" + "('"+ ADMIN_ID +"', 'Bella', 'Dog', '02/12/2019', "+950.00+", 'Sweet" + comma +" Hyper " + comma + " Cuddly "+ comma + " obedient')," +
"('"+ ADMIN_ID +"', 'Coco', 'Cat', '07/15/2016', "+650.00+", 'Lazy " + comma + " Cuddly" + comma + "Stubborn');");
statement.close();
return true;
} catch(Exception e) {
System.out.println(e);
statement.close();
return false;
}
用于避免SQL注入。按如下方式操作:
String sql = "INSERT INTO ANIMALS (USER_ID, NAME, SPECIES, DOB, PRICE, TRAITS) VALUES(?, ?, ?, ?, ?, ?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, ADMIN_ID);
pstmt.setString(2, "Bella");
pstmt.setString(3, "Dog");
pstmt.setDate(4, java.sql.Date.valueOf("2019-12-02")); // yyyy-mm-dd
pstmt.setDouble(5, 950.0);
pstmt.setString(6, "Cuddly, Furry, Lazy");
pstmt.executeUpdate();
用于避免SQL注入。按如下方式操作:
String sql = "INSERT INTO ANIMALS (USER_ID, NAME, SPECIES, DOB, PRICE, TRAITS) VALUES(?, ?, ?, ?, ?, ?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, ADMIN_ID);
pstmt.setString(2, "Bella");
pstmt.setString(3, "Dog");
pstmt.setDate(4, java.sql.Date.valueOf("2019-12-02")); // yyyy-mm-dd
pstmt.setDouble(5, 950.0);
pstmt.setString(6, "Cuddly, Furry, Lazy");
pstmt.executeUpdate();
了解防止sql注入的预处理语句。它还将解决您关于comma Escape Enfo5o的问题,这是一个类项目,它甚至不会实时部署。但是谢谢你提供的非常有用的信息。同时删除价格栏中的单引号。它是一个数值。您应该始终使用prepared语句,因为它使数据库的工作更容易使用prepared语句。了解prepared语句以防止sql注入。它还将解决您关于comma Escape Enfo5o的问题,这是一个类项目,它甚至不会实时部署。但是谢谢你提供的非常有用的信息。同时删除价格栏中的单引号。它是一个数值。您应该始终使用准备好的语句,因为它使数据库的工作更容易使用准备好的语句。