我有一個刪除專輯DAO,一個刪除專輯類和一個刪除servlet都連接到數據庫,但它仍然不運行查詢,即它不起作用。我的刪除Servlet不會從數據庫中刪除
下面的代碼是刪除的servlet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
DeleteAlbum Album = new DeleteAlbum(name) ;
AlbumDAO.INSTANCE.delete(Album);
request.getRequestDispatcher("home.jsp").forward(request, response);
}
這是刪除相冊類
public class DeleteAlbum {
String name ;
public DeleteAlbum(String name){
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
而且這部分代碼連接到數據庫
public enum DeleteAlbumDAO {
INSTANCE;
public Connection getConnection() {
Connection con = null ;
try {
Class.forName("org.hsqldb.jdbcDriver");
con = DriverManager.getConnection(
"jdbc:hsqldb:hsql://localhost/oneDB", "sa", "");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con ;
}
public void delete(Album name) {
try {
Connection con = getConnection() ;
Statement stmt = con.createStatement();
stmt.executeUpdate("Delete from ALBUM WHERE name="+name+"");
System.out.println("Connection Succesful");
stmt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
這是原始ALBUM DAO的代碼,我試圖通過名稱刪除專輯,我添加albumDAO以測試ti是否是連接,但它仍然不能正常工作
import model.Album;
import model.DeleteAlbum;
public enum AlbumDAO {
INSTANCE;
public Connection getConnection() {
Connection con = null ;
try {
Class.forName("org.hsqldb.jdbcDriver");
con = DriverManager.getConnection(
"jdbc:hsqldb:hsql://localhost/oneDB", "sa", "");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con ;
}
public void save(Album album) {
try {
Connection con = getConnection() ;
Statement stmt = con.createStatement();
stmt.executeUpdate("INSERT INTO ALBUM (name, artist , genre)"
+ "VALUES ('" + album.getName() + "','"+ album.getArtist() + "','"+ album.getGenre() + "')");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete(DeleteAlbum name) {
try {
Connection con = getConnection() ;
Statement stmt = con.createStatement();
stmt.executeUpdate("Delete from ALBUM WHERE name="+name+"");
stmt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
它不會從我的數據庫中刪除 – deecobbk
'stmt.executeUpdate(「從ALBUM WHERE name =」+ name +「」刪除);''這裏的'name'是'Album'對象。您可能需要接受'DeleteAlbum'並調用album.getName()'。 –
你確實需要了解準備好的陳述和參數:你忘了名字周圍的引號,即使你沒有忘記它們,如果專輯名稱包含引號,陳述仍然會失敗。 http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html –