Java中怎样实现批量删除操作(Java对数据库

作者&投稿:苏底 (若有异议请与网页底部的电邮联系)
java如何实现对数据表里面的数据删除(最好给个具体代码范例)~

连接数据库
public class DBManager {
//定义数据库连接的URL
private static final String URL="jdbc:sqlserver://localhost:1433;database=j1105";
//定义数据库的用户名
private static final String USERNAME = "sa";
//定义数据库密码
private static final String PASSWORD = "sa";
//定义一个连接的引用,使用单例模式
private static Connection conn = null;


//使用静态块来注册驱动
//类加载时自动执行代码块
static {
//反射com.microsoft.sqlserver.jdbc.SQLServerDriver.class
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

//获得连接
//在程序使用过程中始终只有1个对象存在
//使用单例模式来给Connection赋值
public static Connection getConnection(){
if(conn == null){
try {
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
}
/**
* 关闭的一些操作 , 优化
* @param conn
* @param stat
* @param rs
*/
public static void close(Connection conn,Statement stat,ResultSet rs){
try{
if(conn != null){
conn.close();
}
if(stat != null){
stat.close();
}
if(rs != null){
rs.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
/**
* 重写上面的方法,在只有2个参数的情况下关闭
* @param conn
* @param stat
*/
public static void close(Connection conn,Statement stat){
try{
if(conn != null){
conn.close();
}
if(stat != null){
stat.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}

public static void main(String[] args){
Connection conn = DBManager .getConnection();
System.out.println(conn);
}
}

接口
public interface IStudentDao {

public void deleteStudent(int xh);
}
实现
public class StudentDAOimpl implements IStudentDao {
public void deleteStudent(int xh) {
try{
String sql = "delete from tb_student where xh = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, xh);
ps.executeUpdate();
System.out.println("成功删除");
}catch(SQLException e){
e.printStackTrace();
}
}
}

直接 delete from xxx where id in (a,b,c...)
楼上说的循环可以实现,但是最好不要把DML操作写在循环里面 会影响效率。最好是跟数据库一次交互 直接完成。

如果是mybatis的话可以传id集合给xml、然后xml使用foreach遍历删除就好了

下面一代java代码,问题写在注释中,请高手解答.
答://这是orcale jdk7的源码,我加了点注释,看明白了你就知道remove是如何工作的了 public E remove(int index) { rangeCheck(index); // 检查给的index是否合法 modCount++;E oldValue = elementData(index); //取出下标对应的对象 int numMoved = size - index - 1; // 计算需要移动的位数 ...

hibernate优化方案
答:二 使用SQL执行批量操作 在进行批量插入 修改和删除操作时 直接使用JDBC来执行原生态的SQL语句无疑会获得最佳的性能 这是因为在处理的过程中省略或者简化了以下处理内容 ● HQL语句到SQL语句的转换 ● Java对象的初始化 ● Java对象的缓存处理 但是在直接使用JDBC执行SQL语句时 有一个最重要的问题就是要处理...

Java批量删除如何事务回滚
答:springMVC 应该是用 @Transactional 来注解事务的,的那个你发现有问题的时候,在if的代码里抛出异常就会回滚本函数本次批量操作的数据。throw new RuntimeException(result.getMessage());//抛出异常。

如何批量删除数据
答:你好,以编程的方式实现数据的批量删除一般有下面几种:1.如果数据按一定格式写在文件中,可以采用将文件内的数据提取到内存,编辑后再保存的方式来达到删除的目的.2.如果数据是在数据库中,可以连接到该数据库,使用条件语句和for循环来配合删除数据 3.如果你想要批量删除文件,只能采取for循环来不断地生成欲...

Java读取Excel数据后,通过addrId和tariffCode高效批量删除数据库中对...
答:你的应该是WEB工程吧。 用户选择本地文件以后提交后台的上传,后台首先将用户上传的文件获取到,然后通过POI组件对excel进行读取,将每一行数据转换成为对应的Java实体List,然后将List导入数据库。POI组件是APACHE的一个开源项目,你可以到他们...

Hibernate的批量处理
答:() 绕过Hibernate API 直接通过 JDBC API 来做批量插入 这个方法性能上是最 好的 也是最快的 对于上述中的方法 其基本是思路为 优化Hibernate 在配置文件中设置hibernate jdbc batch_size参数 来指定每次提交SQL的数量 程序上采用分段插入及时清除缓存的方法(Session实现了异步write behind 它允许Hibernate显式地写...

java批量删除报错,求大神指教下,谢谢
答:你使用了@Query注解,是用于查询的,报错信息显示无法提取结果集,所以用删除的话,应该不是用@Query,试试看@Delete

在java中怎样删除所有存储过程
答:直接用jdbc执行sql语句块declare @procName varchar(500) declare cur cursor -- 定义个游标 for select [name] from sysobjects where type = 'p' open cur -- 打开游标 fetch next from cur into @procName --迭代游标并给@procName赋值 while @@fetch_status = 0 --判断...

如何删除文件或文件夹?
答:提醒:使用这个rm -rf的时候一定要格外小心,linux没有回收站的。rm还有更多的其他参数和用法,具体参数用法使用man rm查看。说明:-r 向下递归,不管有多少级目录,一并删除 -f 直接强行删除,不作任何提示的意思 java 中的file中怎么删除全部文件夹 import java.io.File;public class DeleteDirectory ...

问一个问题,我在java+mysql做一个字段的排序,做了个批量删除,想将顺序...
答:我提出我的一些想法仅供参考 当你批量删除了数据以后,再把数据重新查询出来,遍历的同时做showindex修改的操作.新建一个变量自增,完成正确排序.