JDBC运行建表sql脚本的解决方案

来源:互联网 发布:三维建筑房屋设计软件 编辑:程序博客网 时间:2024/05/22 18:30

使用JDBC以来,实用性的只会用PrepareStatement 预可编辑提交来写几个简单的查询(select)、插入(insert)、修改(update)、删除(delect)。忽然想,如果用JDBC来初始化数据库,跑一段脚本,应该怎么运行、怎么写呢?预编译提交的可以实现吗?

当我将一段冗长的sql引用到String当中,准备提交:

drop table1 if table1 is exsit;drop table2 if table2 is exsit;drop table3 if table3 is exsit;create table1 (user_id int ,).............
抛出了异常:


预编译应该是一些可以编辑改变的参数存在sql中才使用的,那么,我这段没有任何参数的sql需要预编译吗?或者我使用Stement呢?查下API,发现createStement方法。

batchAdd(); excuteBatch();貌似这里能够给我解决方法了。

首先String sql1、2、3、4、5....分别将每段分号与分号之间的sql引导到对应的String 当中。

String sql1 = "drop table1 if table1 is exsit";String sql2 = "drop table2 if table2 is exsit";String sql3 = "drop table3 if table3 is exsit"'Stirng sql4 = "create table1(user_id int....)".....
获取JDBC链接:

Connection conn = Connection.getInstance();Stament stmt = conn.createStament();
将这些sql放入stmt,等待提交:

stmt.batchAdd(sql1);stmt.batchAdd(sql2);stmt.batchAdd(sql3);stmt.batchAdd(sql4);
提交:

stmt.excuteBatch();
测试,跑起。。。。成功建表!



0 0