我正在尝试插入我的MYSQL数据库,但我的代码总是转到catch部分(表示上传到数据库失败)。我做错了什么?
public static Connection getAttConnection() throws Exception {
String url = "jdbc:mysql://localhost:3306/";
String dbName = "VB";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "***********";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url+dbName,userName,password);
return conn;
}
public static void addAttendance(String name, String type, String size,
String path, String last_Mod) {
Connection conn = null;
PreparedStatement pstmt = null;
boolean committed = false;
try {
conn = getAttConnection();
conn.setAutoCommit(false);
String query = "INSERT INTO upload (name, type, size, path, last_Mod) VALUES (?,?,?,?,?)";
pstmt = conn.prepareStatement(query);
pstmt.setString(1,name);
pstmt.setString(2,type);
pstmt.setString(3,size);
pstmt.setString(4,path);
pstmt.setString(5,last_Mod);
pstmt.executeUpdate();
conn.commit();
conn.setAutoCommit(true);
committed = true;
System.out.println("Upload Correctly");
} catch (Exception e) {
System.err.println("Uploading to database failed");
}
}
答案 0 :(得分:0)
您的密码是否正确提供?您的代码显示了所有“ * ”
接下来,检查数据库名称。
然后,打印整个异常,而不是打印自定义消息,如下所示:
e.printStackTrace(System.out);
答案 1 :(得分:0)
不完全确定,但你可能插入没有引号的字符串......
String query = "INSERT INTO upload (name, type, size, path,
last_Mod) VALUES ('?','?','?','?','?')";
您将所有参数作为字符串传递,但我怀疑size应该是int。
答案 2 :(得分:0)
我怀疑数据类型可能存在问题,例如:当你做的时候
pstmt.setString(3, size);
您确定size
是数据库表中的字符串吗?
另外,请添加
e.printStackTrace();
到您的catch()
子句以获取更详细的错误消息。