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();
        }

    }
}