尝试在java中将新数据插入sql数据库时出错

时间:2017-12-23 05:51:17

标签: java sqlite jdbc

我正在尝试使用DAO在SQL数据库中插入新数据。我有一个布尔方法插入但有一个SQL错误或数据库丢失。数据库不会丢失,因为我测试了它,它显示了表格中的所有内容。

这是连接方法

public Connection getDBConnection() {
    Connection dbConnection = null;
    try {
        Class.forName("org.sqlite.JDBC");
    } catch (ClassNotFoundException e) {
        System.out.println(e.getMessage());
    }
    try {
        String dbURL = "jdbc:sqlite:studentdb.sqlite";
        dbConnection = DriverManager.getConnection(dbURL);
        return dbConnection;
    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
    return dbConnection;
}

插入方法

public boolean insertStu(Student stu) throws SQLException {
    Connection dbConnection = null;
    Statement statement = null;
    ResultSet resultset = null;
    boolean b = false;
    try {
        String query = "insert into studentdb (Name, Gender, DOB, Address, Postcode, StudentNumber, CourseTitle, StartDate, Bursary, Email) values (\""
                + stu.getName() + "\"," + "\"" + stu.getGender() + "\"," + "\"" + stu.getDob() + "\"," + "\""
                + stu.getAddress() + "\"," + "\"" + stu.getPostcode() + "\"," + "\"" + stu.getStudentNumber()
                + "\"," + "\"" + stu.getCourseTitle() + "\"," + "\"" + stu.getStartDate() + "\"," + "\""
                + stu.getBursary() + "\"," + "\"" + stu.getEmail() + "\")";

        dbConnection = getDBConnection();
        statement = dbConnection.createStatement();
        b = statement.execute(query);
    } catch (SQLException s) {
        throw new SQLException("Contact Not Added");
    } finally {
        if (dbConnection != null) {
            dbConnection.close();
        }
        if (statement != null) {
            statement.close();
        }
        if (resultset != null){
            resultset.close();
        }
    }
    return b;
}

我在不同的程序中尝试过SQL查询,其中连接方法是Statement类型,插入方法仍然是boolean,但现在要求使用Connection类。无论哪种方式它应该工作,但我不明白的方式不起作用。 Student对象的变量有getset个方法。

非常感谢任何帮助。

0 个答案:

没有答案