Java 将JDBC的PreparedStatement与Mysql结合使用';s TableName以'结尾\';

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

我正在尝试向Mysql数据库中插入一些内容,该数据库有一个名称以“
\
”结尾的表。它的名字是“
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抱歉,我已将其编辑为完整示例。