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();
}
}
这是原始相册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();
}
}
}
您实际上并没有将alubum名称传递给准备好的语句,因此需要更改delete
方法,如下所示:
public void delete(DeleteAlbum album) {
//Use try with resources as shown below which closes conn & stmt objects
try(Connection con = getConnection() ;
PreparedStatement stmt = con.prepareStatement("Delete from ALBUM WHERE name=?")) {
stmt.setString(1, album.getName());
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
请使用preparedstament setString()、setInt()等。方法,以避免SQL注入。您可以在此查阅
此外,确保您正在使用try with resources或关闭finally块中的资源,以避免连接泄漏。
我需要你帮我。我想在RecyclerView中通过SwipeToDelete删除数据库中的数据。 我已经有了一个从RecycleView中删除项目的Swipe类,我可以从该列表中删除项目,但不能从数据库中删除。 我尝试在NoteAdapater(回收器适配器)中调用数据库,并使用removeItem(int-position)方法删除所需的项,如下所示: 这是Main Active代码: 删除数据
我制作了一个JTable,其中填充了数据库中的数据。它从textfields中获取数据并将其添加到表和数据库中。问题是我有一个删除按钮,我让它从表本身删除选定的行(使用defaultTableModel),但它不会从实际的数据库中删除该数据。当我再次运行该程序时,删除的行再次出现在JTable中。 这可能会变得混乱,但希望有人能找出我错过了什么。帮助将会很感激,但不要,我的时间很少,不能完全大修我
我正试图从数据库中删除一行,但得到以下错误
我有一个jsp网页。我需要删除用户名从数据库当我按删除按钮从网页。我尝试了下面的代码,但是我不能删除名称,而是在用户名数据库中插入一个新行和一个空值。 unblockServlet.java: 受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{//TODO自动生成的方法
我想从数据库中删除一条特定的记录。
问题内容: 我需要从数据库中删除重复的行。我可以用简单的SQL查询吗?如果没有,请告诉我一些快速算法。 例子: 我需要删除ID为2的行(或3,无论如何,它们是相等的,但不能同时都是)。谢谢你的帮助 问题答案: 正如评论中指出的那样,如果连续出现三遍,则此操作将无效。您可以重复运行此(繁重的)查询,直到停止删除内容为止,或者等待更好的答案…