MySQL查询插入

时间:2013-04-29 13:57:41

标签: java mysql

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

3 个答案:

答案 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()子句以获取更详细的错误消息。