会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133546个问题

老师批量删除要怎么做呢?我用了同样的方法貌似行不通 哪里出了问题?

//批量删除
	public void deleteBatch(List<Departments> list) {
		Connection conn = null;
		PreparedStatement ps = null;
		try {
			conn = JdbcUtil.getConnection();
			ps = conn.prepareStatement("delete from departments where department_name=?");
			for(int i=0;i<list.size();i++) {
				ps.setString(1, list.get(i).getDepartmentName());
				//批处理
				ps.addBatch();
			}
			int[] arr =ps.executeBatch();
			for (int i = 0; i < arr.length; i++) {
				System.out.println(i);
			}
		} catch (Exception e) {
			// TODO: handle exception
		}finally {
			JdbcUtil.closeResoure(ps, conn, null);
			
		}
	}
	
	public static void main(String[] args) {
		PreparedStatementDemon psd = new PreparedStatementDemon();
		//psd.insertDepartments("人力资源2", 12);
		//psd.updateDepartments("科研部", 7, 10);
		/*Departments dept = psd.selectDepartmentsId(9);
		if (dept !=null) {
			System.out.println(dept.getDepartmentId()+" "+dept.getDepartmentName()+" "+ dept.getLocationId());
		}
		*/
		/*List<Departments> list = psd.selectDepartmentsByLike("部");
		for (Departments dept : list) {
			System.out.println(dept.getDepartmentId()+" "+dept.getDepartmentName()+" "+dept.getLocationId());
		}*/
		/*List<Departments> list = new ArrayList<>();
		for(int i=1;i<=10;i++) {
			Departments dept = new Departments();
			dept.setDepartmentName("Dota部"+i);
			dept.setLocationId(10+i);
			list.add(dept);
		}
		psd.addBatch(list);*/
		List<Departments> list = new ArrayList<>();
		for(int i=1;i<=10;i++) {
			Departments dept = new Departments();
			dept.setDepartmentName("Dota部"+i);
			list.add(dept);
		}
		psd.addBatch(list);
		
	}

结果:

Thu Feb 20 18:18:13 CST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.


JAVA 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术(旧) 6031楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 6032楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/变量、数据类型、运算符 6034楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/变量、数据类型、运算符 6035楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图高级 6036楼
WEB前端全系列/第五阶段:前后端交互/网络请求AJAX 6040楼
Python 全系列/第二十八阶段:Hadoop 分布式文件系统:HDFS(扩展)/Hadoop 高可用集群及java API 6041楼
Python 全系列/第二十三阶段:人工智能基础_机器学习理论和实战(旧)/代码实战梯度下降法与优化 6042楼
Python 全系列/第二阶段:Python 深入与提高/异常机制 6043楼

# 单线程(s)         多线程(s)
# 5.16              3.04
# 5.08              3.20
# 5.01              3.06
# 4.92              3.10
# 4.99              3.26

# 4.91              3.11
# 5.05              3.13
# 5.21              3.08
# 4.91              3.19
# 4.94              3.08


from threading import Thread
from threading import Lock
from time import time


def getNumber1(name, num):
    for number in num[::]:
        print(f'{name}-{number}')
        num.remove(number)


def getNumber2(name, num):
    lock1.acquire()
    for number in num[::]:
        print(f'{name}-{number}')
        num.remove(number)
    lock1.release()


if __name__ == '__main__':
    start_time1 = time()
    num_list = [x for x in range(1, 100001)]

    lock1 = Lock()

    t1 = Thread(target=getNumber2, args=('t1', num_list))
    t2 = Thread(target=getNumber2, args=('t2', num_list))
    t3 = Thread(target=getNumber2, args=('t3', num_list))

    t1.start()
    t2.start()
    t3.start()

    t1.join()
    t2.join()
    t3.join()

    end_time1 = time()

    print(end_time1 - start_time1)


    # start_time2 = time()
    #
    # getNumber1('邓明宝', num_list)
    #
    # end_time2 = time()
    #
    # print(end_time2 - start_time2)

    # print(end_time1 - start_time1 - (end_time2 - start_time2))

    print("主线程-end")

这个多线程我加锁了,理论上已经相当于单线程了,为什么执行时间还会比单线程快很多

Python 全系列/第三阶段:Python 网络与并发编程/并发编程 6044楼
JAVA 全系列/第九阶段:Spring Boot实战/Spring Boot 6045楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637