Java 将JDBC的PreparedStatement与Mysql结合使用';s TableName以'结尾\';
我正在尝试向Mysql数据库中插入一些内容,该数据库有一个名称以“Java 将JDBC的PreparedStatement与Mysql结合使用';s TableName以'结尾\';,java,mysql,jdbc,Java,Mysql,Jdbc,我正在尝试向Mysql数据库中插入一些内容,该数据库有一个名称以“\”结尾的表。它的名字是“abc\” public static void main(String[] args) throws ClassNotFoundException{ try { Class.forName("com.mysql.jdbc.Driver"); Connection master = DriverManager.getConnection($URL,$USR
\
”结尾的表。它的名字是“abc\
”
public static void main(String[] args) throws ClassNotFoundException{
try {
Class.forName("com.mysql.jdbc.Driver");
Connection master = DriverManager.getConnection($URL,$USR,$PWD);
String st = "insert into `abc\\` (`pad`,`c`,`k`,`id`) values(?,?,?,?)";
PreparedStatement pstmt = master.prepareStatement(st);
pstmt.setInt(1, 10);
pstmt.setInt(2, 1);
pstmt.setString(3, "1");
pstmt.setString(4, "2");
pstmt.execute();
master.close();
}catch(SQLException ex){
ex.printStackTrace();
}
但它不起作用,问题是:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
但是,如果表名为“a\bc
”,其反斜杠不是最后一个字符,则我的程序运行良好
有人能帮我解决这个问题吗?非常感谢。它正在使用
语句
public static void main(String[] args) throws ClassNotFoundException,
SQLException {
Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
String st = "insert into `abc\\` (`pad`,`c`,`k`,`d`) values(10,11,'5','6')";
Statement stmt = (Statement) con.createStatement();
stmt.execute(st);
con.close();
}
“插入“+”abc“+”(pad
,c
,k
,id
)值(?,,?)”;试试看!尝试在查询字符串中使用转义字符'abc\\\'
,该代码甚至无法编译-请发布一个真正简短但完整的示例,该示例实际演示了您描述的问题。@TSurendra感谢您的回答,但它不起作用。此异常:java.sql.SQLException:参数索引超出范围(1>参数数,为0)。@JonSkeet抱歉,我已将其编辑为完整示例。