Java 从数据库中删除文件错误
在数据库中尝试此代码,并查看输出。您可以稍作更改并使用数据库进行测试。希望有帮助Java 从数据库中删除文件错误,java,jdbc,Java,Jdbc,在数据库中尝试此代码,并查看输出。您可以稍作更改并使用数据库进行测试。希望有帮助 try { Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\AhzelBrend\\Documents\\Student.mdb"); Statement stmt = conn.createSt
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\AhzelBrend\\Documents\\Student.mdb");
Statement stmt = conn.createStatement();
String Query = "DELETE FROM StudentTable WHERE FULLNAME='"+ List1.getSelectedValue()+ "'";
stmt.execute(Query);
JOptionPane.showMessageDialog(null,"Record Deleted");
FillList();
IKlir();
}
catch(ClassNotFoundException ex) {
Logger.getLogger(Student.class.getName()).log(Level.SEVERE,null, ex);
}
catch(SQLException ex){
JOptionPane.showMessageDialog(null, ex.toString());
}
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.sql.Statement;
公共类DbTest{
公共静态void main(字符串[]args){
试一试{
//您的MS Access驱动程序
//类forName(“net.ucanaccess.jdbc.UcanaccessDriver”);
//我的测试H2驱动程序
Class.forName(“org.h2.Driver”);
//您的MS Acess连接
//Connection conn=DriverManager.getConnection(“jdbc:ucanaccess://C:\\Users\\AhzelBrend\\Documents\\Student.mdb”);
//我的H2连接
连接conn=DriverManager.getConnection(“jdbc:h2:mem:test;DB_CLOSE_DELAY=10”);
语句stmt=conn.createStatement();
//创建和填充数据库
stmt.execute(“创建表StudentTable(FULLNAME VARCHAR(255))”;
对于(int i=0;i<10;i++){
stmt.executeUpdate(“插入StudentTable(全名)值('Name“+i+”)”);
}
//删除语句
//String Query=“从StudentTable中删除,其中FULLNAME=”+List1.getSelectedValue()+”;
//我的删除语句
String Query=“从StudentTable中删除,其中FULLNAME='Name 5';
int rows=stmt.executeUpdate(查询);
System.out.println(行+受影响行);
conn.commit();
康涅狄格州关闭();
//打开新连接以测试结果
conn=DriverManager.getConnection(“jdbc:h2:mem:test;DB_CLOSE_ON_EXIT=FALSE”);
stmt=conn.createStatement();
ResultSet results=stmt.executeQuery(“从StudentTable中选择*);
//Stundent“名称5”已被删除
while(results.next()){
System.out.println(“学生”+结果.getString(“全名”);
}
//showMessageDialog(null,“记录已删除”);
//填充列表();
//IKlir();
}捕获(ClassNotFoundException ex){
例如printStackTrace();
}catch(SQLException-ex){
例如printStackTrace();
}
}
}
和简短描述什么事情没有发生,什么事情发生了。当我按下“删除”按钮时,它会显示消息对话框“记录已删除”,但在列表1上它没有删除。和它没有删除的数据库中的相同。请使用java帮助im noob。在执行语句并关闭连接后执行commit
。可以举个例子感谢您的帮助。使用stmt.executeUpdate(sql)
进行插入、更新或删除,它将返回受影响的行数,检查它是否大于或等于1。@jayson-这是否意味着它可以与MS Access数据库一起使用?那么问题出在FillList()
方法中
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DbTest {
public static void main(String[] args) {
try {
// Your MS Access driver
// Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
// My Test H2 driver
Class.forName("org.h2.Driver");
// Your MS Acess connection
// Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\AhzelBrend\\Documents\\Student.mdb");
// My H2 connection
Connection conn = DriverManager.getConnection("jdbc:h2:mem:test;DB_CLOSE_DELAY=10");
Statement stmt = conn.createStatement();
// Create and fill database
stmt.execute("CREATE TABLE StudentTable (FULLNAME VARCHAR(255))");
for (int i = 0; i < 10; i++) {
stmt.executeUpdate("INSERT INTO StudentTable(FULLNAME) VALUES ('Name " + i + "')");
}
// Your delete statement
// String Query = "DELETE FROM StudentTable WHERE FULLNAME='"+ List1.getSelectedValue()+ "'";
// My delete statement
String Query = "DELETE FROM StudentTable WHERE FULLNAME='Name 5'";
int rows = stmt.executeUpdate(Query);
System.out.println(rows + " rows affected");
conn.commit();
conn.close();
// Open a new Connection to test th result
conn = DriverManager.getConnection("jdbc:h2:mem:test;DB_CLOSE_ON_EXIT=FALSE");
stmt = conn.createStatement();
ResultSet results = stmt.executeQuery("SELECT * FROM StudentTable");
// Stundent 'Name 5' has been deleted
while (results.next()) {
System.out.println("Student " + results.getString("FULLNAME"));
}
// JOptionPane.showMessageDialog(null,"Record Deleted");
// FillList();
// IKlir();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}