java如何执行sql脚本并传参

如下所示,利用ant.jar实现连接oracle数据库并执行sql脚本,但是如果我的sql脚本是带传入参数的(例如通过sqlplus是这样执行:sqlplus user/password@db @test.sql A B C),貌似ant.jar中并不支持脚本传参,不知道有什么好的方法?

public static void main(String[] args) { 
SQLExec sqlExec = new SQLExec(); 
//设置数据库参数 
sqlExec.setDriver("oracle.jdbc.driver.OracleDriver"); 
sqlExec.setUrl("jdbc:oracle:thin:@10.128.x.x:1521:xxsid"); 
sqlExec.setUserid("xxuser"); 
sqlExec.setPassword("xxpass"); 
//要执行的脚本 
sqlExec.setSrc(new File("src/data.sql")); 
//有出错的语句该如何处理 
sqlExec.setOnerror((SQLExec.OnError)(EnumeratedAttribute.getInstance( 
SQLExec.OnError.class, "abort"))); 
sqlExec.setPrint(true); //设置是否输出 
//输出到文件 sql.out 中;不设置该属性,默认输出到控制台 
sqlExec.setOutput(new File("src/sql.out")); 
sqlExec.setProject(new Project()); // 要指定这个属性,不然会出错 
sqlExec.execute(); 
}


凤凰求蛊
浏览 1385回答 1
1回答

阿波罗的战车

有很多好东西可以做数据库相关的操作。JDBC:写SQL进行查询MyBatis:对象映射Hibernate:对象映射另外,main方法的args是可以传参数的。你可以把参数传入,然后用最笨的办法把参数和SQL用String.format组合起来。比如通过args传入的参数是ABC,代码可以是如下这样写:String.format("select * from table where name=%s and age=%s and sex=%s", A, B, C)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java