为了账号安全,请及时绑定邮箱和手机立即绑定

java如何执行sql脚本并传参

java如何执行sql脚本并传参

凤凰求蛊 2018-10-23 15:03:53
如下所示,利用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(); }
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

有很多好东西可以做数据库相关的操作。

  1. JDBC:写SQL进行查询

  2. MyBatis:对象映射

  3. 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)


查看完整回答
反对 回复 2018-10-23
  • 1 回答
  • 0 关注
  • 1363 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信