我想将从用户处获取的输入插入到 mysql 数据库中,连接正确,但插入给了我错误
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本对应的手册,了解在 ''u_fname', 'u_lname', 'u_uname', 'u_pass', 'u_age', 'u_adderess') 附近使用的正确语法:values('20','o ' 在第 1 行
我的代码是:
public void adduser(User s) {
try {
sql = "insert into users ('u_fname', 'u_lname', 'u_uname', 'u_pass', 'u_age', 'u_adderess')"
+ "values('" + s.getFirstname() + "','" + s.getLastname()
+ "','" + s.getUsername() + "','" + s.getPassword() + "','" + s.getAge() + "','" + s.getAdderss() + "')";
stmt = conn.createStatement();
int i = stmt.executeUpdate(sql);
if (i > 0) {
System.out.println("ROW INSERTED");
} else {
System.out.println("ROW NOT INSERTED");
}
} catch (Exception e) {
System.out.println(e);
}
}
Run Code Online (Sandbox Code Playgroud)
要插入 mysql,请按照下列步骤操作:
创建到我们的示例 MySQL 数据库的 Java 连接。我相信你已经处理好了。会是这样的——
String myDriver = "org.gjt.mm.mysql.Driver";
String myUrl = "jdbc:mysql://localhost/test";
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(myUrl, "root", "");
Run Code Online (Sandbox Code Playgroud)使用 JavaPreparedStatement 语法创建 SQL INSERT 语句。您的PreparedStatement SQL 语句将遵循以下格式:
String sql = " insert into users (first_name, last_name, date_created, is_admin, num_points)"
+ " values (?, ?, ?, ?, ?)";
Run Code Online (Sandbox Code Playgroud)设置 JavaPreparedStatement 对象上的字段。它将完成为-
PreparedStatement preparedStmt = conn.prepareStatement(sql);
preparedStmt.setString (1, s.first_name);
preparedStmt.setString (2, s.last_name);
preparedStmt.setDate (3, s.date_created);
preparedStmt.setBoolean(4, s.is_admin);
preparedStmt.setInt (5, s.num_points);
Run Code Online (Sandbox Code Playgroud)执行 Java 准备语句。
preparedStmt.execute();
Run Code Online (Sandbox Code Playgroud)关闭我们的 Java MYSQL 数据库连接。
conn.close();
Run Code Online (Sandbox Code Playgroud)捕获在此过程中可能出现的任何 SQL 异常。
catch (Exception e)
{
System.err.println("Got an exception!");
// printStackTrace method
// prints line numbers + call stack
e.printStackTrace();
// Prints what exception has been thrown
System.out.println(e);
}
Run Code Online (Sandbox Code Playgroud)