应用情景:
读取SQL文件,获取ID,对先前插入数据库的记录进行删除。
SQL文件大概如下:
insert into CAR_PAYORDERS (DDBH, MAILL, WDBH, SCRQ, DJZT, DKFS, JYZT, JYRQ, SJRR, SJDH, SJDZ, HZZT, HZRQ, ZFZT, WLDH, YZBM)
values ('0076d1432f304429a30bdb4e4cf2927c', 'sfc-1', 'Y001', to_date('23-12-2015 15:22:10', 'dd-mm-yyyy hh24:mi:ss'), null, 2, null, to_date('23-12-2015 17:53:13', 'dd-mm-yyyy hh24:mi:ss'), '秦飘人', '15015584995', null, null, null, 1, null, null);
insert into CAR_PAYORDERS_DETAIL (JFBH, DDBH, CXDM, CPHM, JFNF, SLBH, ZFCG, JFJE, ZFRQ, DJRQ, WLDH, DYTT, ZNJ)
values ('Y3N441', '0076d1432f304429a30bdb4e4cf2927c', '06', '粤A·Y3N44蓝', '2015', '15015584995', 1, 980, to_date('23-12-2015 17:53:13', 'dd-mm-yyyy hh24:mi:ss'), to_date('23-12-2015 14:22:10', 'dd-mm-yyyy hh24:mi:ss'), null, null, 0);
--........
目标就是获取DDBH对应值:
代码如下:
public static void main(String[] args){
Pattern p = Pattern.compile("[a-z0-9]{32}");
Set set &#61; new HashSet<>();
try{
BufferedReader br &#61; new BufferedReader(new FileReader(new File(".\\4.carPayorderdetail.sql")));//构造一个BufferedReader类来读取文件
String s &#61; null;
while((s &#61; br.readLine()) !&#61; null){//使用readLine方法&#xff0c;一次读一行
Matcher m &#61; p.matcher(s);
while(m.find()){
set.add(m.group());
}
}
br.close();
for(String str : set){
System.out.println("delete from CAR_PAYORDERS_DETAIL t where t.ddbh&#61;&#39;"&#43;str&#43;"&#39;;");
System.out.println("delete from CAR_PAYORDERS t where t.ddbh&#61;&#39;"&#43;str&#43;"&#39;;");
}
}catch(Exception e){
e.printStackTrace();
}
}
然后&#xff0c;在命令行窗口编译、执行
javac Main.java
java Main > deleteOrders.sql