石家庄营销型网站建设费用,wordpress 文字背景,昆明网络哪家好,室内设计平面方案讲解一、需求背景
项目中经常会去对接第三方的数据#xff0c;将对方的用户组织等信息同步过来#xff0c;此时会遇到几个问题就是数据量大的时候性能问题#xff0c;数据部分更新时又该怎么同步#xff0c;但这些数据基本都有状态和更新时间#xff0c;根据该两个值去新增和…一、需求背景
项目中经常会去对接第三方的数据将对方的用户组织等信息同步过来此时会遇到几个问题就是数据量大的时候性能问题数据部分更新时又该怎么同步但这些数据基本都有状态和更新时间根据该两个值去新增和更新即可但是最近遇到一个即没有更新时间也没有状态的表这样子导致没法增量更新删除了的数据也没法同步只能每次删除全量的数据然后重新获取
二、JdbcTemplate无法开启事务存疑
首先先说JdbcTemplate无法开启事务百度之后网友说在方法上添加注解 Transactional即可区别是网友用的是xml去说明这个JdbcTemplate而我是手动去set这个JdbcTemplate
BasicDataSource dataSource new BasicDataSource();//jdbc driver类dataSource.setDriverClassName(domainDriverClassName);//urldataSource.setUrl(http://localhost:3306);//用户名dataSource.setUsername(domainUserName);//密码dataSource.setPassword(domainPassword);dataSource.setDefaultTransactionIsolation(2);dataSource.setRemoveAbandonedOnBorrow(true);dataSource.setRemoveAbandonedOnMaintenance(true);dataSource.setRemoveAbandonedTimeout(300);dataSource.setLogAbandoned(false);dataSource.setMaxTotal(dsMaxTotal);dataSource.setMinIdle(2);dataSource.setMaxWaitMillis(30000);JdbcTemplate jdbcTemplate new JdbcTemplate();jdbcTemplate.setDataSource(dataSource);然后在方法前添加Transactional注解但是不生效这里有个小知识点ddm语句是不会回滚的
jdbcTemplate.execute(truncate table db_gx_lineage_data);
int i 1/0;虽然方法前加了注解但是执行到1/0的时候报错但是并没有回滚一开始以为是ddm语句无法回滚的问题后续又把truncate换成delete但是发现仍然不会回滚数据库的数据还是被删除了广大的网友们知道jdbcTemplate怎么开启事务的欢迎留言交流
三、使用Statement手动开启事务 Connection connection dataSource.getConnection();connection.setAutoCommit(false);Statement statement connection.createStatement();statement.execute(delete from db_gx_lineage_data);statement也可以执行批量任务其中有个addBatch(Sql)的方法可以一直往里面添加sql然后批量执行executeBatch()方法即可这里有个问题就是批量执行有个条数上线根据网友描述一次只能5w条一起执行多了的会被忽略掉