【发布时间】:2018-11-25 03:01:56
【问题描述】:
我使用 SQLITEStudio 创建了一个数据库并将其保存到我的项目文件夹中。 数据库名称是 ThirftersDataBase.db,其中包含表 accHistory 和列“user”和“password”。 当我使用 Select 查询时连接正常,但当我尝试插入数据时,它不起作用。请帮忙。
这是我的数据库类。
package db.Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class databaseConnection {
static Connection con = getConnection();
static String user;
public static Connection getConnection(){
String url = "jdbc:sqlite::resource:ThirftersDataBase.db";
try {
con = DriverManager.getConnection(url);
System.out.println("connected");
return con;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public void logIN(String user, String pass) {
String sql = "Insert or replace into accHistory(user, password) VALUES (?, ?)";
PreparedStatement st;
try {
st = con.prepareStatement(sql);
st.setString(1, user);
st.setString(2, pass);
st.executeUpdate();
//Check if query is executed;
System.out.println("Saved");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
我有一个带有按钮的 FXML 控制器,点击该按钮可以保存数据。
public class ThriftersController{
databaseConnection connect = new databaseConnection();
public void Save(ActionEvent e) {
//Save "Mark" to user column and save "1234456" to password column
connect.logIN("Mark", "1234456");
}
}
按钮事件处理得很好,当我点击按钮时,它会打印“已保存”,但不会保存在我的数据库中。
【问题讨论】:
-
It doesn't work... 有错误输出吗? -
没什么。这就是我感到困惑和愤怒的地方。我会尝试复制其他代码并尝试它是否有效。
-
您是否有可能将自动提交设置为关闭?
-
拥有 accHistory 表的 DDL 会很有用。您需要关闭语句而不是连接:使用资源尝试或尝试/最终阻止。类名应以大写字母开头。