データベースに接続されている削除アルバムDAO、削除アルバムクラス、および削除サーブレットはすべてありますが、依然としてクエリを実行しない、つまり動作しません。私の削除サーブレットはデータベースから削除されません
以下のコードは、削除サーブレット
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があるかどうかをテストしました接続されているが、まだあなたが実際に準備されたステートメントにalubum名を渡すされません
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 –