【发布时间】:2017-04-19 09:44:12
【问题描述】:
我从最近 2 小时开始尝试它,我不知道出了什么问题。也让我知道如何测试连接是否成功..现在是..但我仍然想知道..
错误:
您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在 '?, ?)' 附近使用的正确语法
我的代码:
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/medicinedb";
static final String USER = "root";
static final String PASS = "";
static final String DRIVER = "com.mysql.jdbc.Driver";
public boolean saveMedicine(List<MedicineName> medicineName) throws ClassNotFoundException {
Connection conn = null;
Statement stmt = null;
try {
Class.forName(DRIVER);
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
for (MedicineName element : medicineName) {
String sql;
sql = " insert into medicinename (name, pgurl)" + " values
( ?, ?)";
System.out.println(conn);
PreparedStatement preparedStmt = conn.prepareStatement(sql);
preparedStmt.setString(1, element.getName());
preparedStmt.setString(2, element.getPgurl());
stmt.executeUpdate(sql);
}
stmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
【问题讨论】:
-
你可以试试这个
sql = "insert into medicinename (name, pgurl) values (?, ?)"; -
同样的错误......@YCF_L
-
你的数据库中
name and pgurl的类型是什么 -
您将 sql 放入准备好的语句 (preparedStmt) 但尝试执行另一条语句 (stmt)。这看起来很奇怪