我正在尝试使用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
对象的变量有get
和set
个方法。
非常感谢任何帮助。