0

我正在尝试插入我的 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");
    }
}
4

3 回答 3

0

您提供的密码是否正确?您的代码显示其全部“ *

接下来,检查数据库名称。

然后,不是打印自定义消息,而是打印整个异常,如下所示:

e.printStackTrace(System.out);
于 2013-04-29T14:01:02.533 回答
0

不完全确定,但您可能正在插入不带引号的字符串....

String query = "INSERT INTO upload (name, type, size, path, 
               last_Mod) VALUES ('?','?','?','?','?')";

您将所有参数作为字符串传递,但我怀疑大小应该是一个 int。

于 2013-04-29T14:01:34.987 回答
0

我怀疑数据类型可能存在问题,例如当您这样做时

pstmt.setString(3, size);

您确定这size是数据库表中的字符串吗?

另外,请补充

e.printStackTrace();

到您的catch()子句以获取更详细的错误消息。

于 2013-04-29T14:01:53.097 回答