java实现sql批量插入参数
生活随笔
收集整理的這篇文章主要介紹了
java实现sql批量插入参数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
背景:
? ? ?需要更新一些不規(guī)范的時(shí)間格式,如將某個(gè)時(shí)間格式化為yy-MM-dd,實(shí)際上為 yy-MM-dd hh:mm:ss,并且需要提供回滾腳本。
例如:規(guī)范化時(shí)間的腳本如下:
update test set test_date=substring(account_date,1,10) WHERE test_date>'2017-06-01 00:00:00' AND test_date<'2017-09-07 00:00:00'這個(gè)腳本是ok,但執(zhí)行時(shí)受到影響的行數(shù)如果有幾百條甚至上千條記錄的話,回滾腳本怎么寫呢?
模板如下:
update test set test_date= '' where id='';1.首先,從test表中查出上述的參數(shù):
select id,test_date from test where test_date>'2017-06-01 00:00:00' AND test_date<'2017-09-07 00:00:00'將結(jié)果導(dǎo)入到文本中,名為為param.txt
2.然后運(yùn)行以下java程序,打印出可執(zhí)行的回滾腳本
private void insertData() throws IOException{ FileReader reader = new FileReader("D:\\document\\load\\data1.txt");BufferedReader br = new BufferedReader(reader); String updateSql="update test set test_date= '' where id='';";String line = null;Integer count=0;String[] param=new String[2];String regexp = "\'\'";while((line = br.readLine()) != null) {param=line.split("\\\t");String first=updateSql.replaceFirst(regexp,"\'"+param[1]+"\'");String second=first.replaceFirst(regexp,"\'"+param[0]+"\'");System.out.println(second);count++;}br.close();reader.close();}3.如果行數(shù)較多,需要打印到文件中(Console打印的記錄數(shù)受限的)
private void insertData() throws IOException{ FileReader reader = new FileReader("D:\\document\\load\\data1.txt");BufferedReader br = new BufferedReader(reader); StringBuffer sbf=new StringBuffer();String updateSql="update test set test_date= '' where id='';";String line = null;Integer count=0;String[] param=new String[2];String regexp = "\'\'";while((line = br.readLine()) != null) {param=line.split("\\\t");String first=updateSql.replaceFirst(regexp,"\'"+param[1]+"\'");String second=first.replaceFirst(regexp,"\'"+param[0]+"\'");//System.out.println(second);sbf.append(second).append("\n");count++;}writeFile("D:\\document\\load\\rollback.sql", sbf);br.close();reader.close();}public void writeFile(String fileName,StringBuffer stf) throws IOException {BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));writer.write(stf.toString()); writer.close();}?
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/7494615.html
總結(jié)
以上是生活随笔為你收集整理的java实现sql批量插入参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python2 与 python3 语法
- 下一篇: 爬虫推荐的工具