我正在编写一个允许客户端与服务器通信的 java 套接字应用程序,其他要求之一是它还需要初始化 JDBC。我相信我已经正确地编写了我的 JDBC 连接方法,并且我的插入语句在类似的项目中也是这样工作的。这可能是一个简单的错误,因为我没有使用 IDE,有人可以告诉我我的 SQL 语句有什么问题吗?所有信息都正确,但无法编译。
错误:
C:\Users\imallin\My Documents> javac provider.java
Provider.java:88 ';' expected
String sql = "Insert INTO 'users' ('ID', 'firstName') VALUES ("123","123")";
最佳答案
您的直接问题是您需要转义字符串中的双引号。这是因为当编译器看到另一个 "
时,它认为它是 String 定义的结尾并执行一个分号。
String sql = "Insert INTO 'users' ('ID', 'firstName') VALUES (\"123\",\"123\")";
现在 Java 编译器很高兴,您将遇到与 SQL 相关的问题。
通常使用 SQL,您会希望使用单引号来表示字符串。看来 MySQL 特别允许双引号,但只有当 SQL QUOTES ANSI mode is not set .所以这里最好用单引号来表示字符串。
这可能是您想要的,假设 ID
列是一个整数,并且 firstName
列是一个字符串/varchar。
String sql = "Insert INTO users (ID, firstName) VALUES (123,'123')";
关于java - 我的JDBC sql语句有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10500786/