永发信息网

java代码中用JDBC导入sql脚本

答案:2  悬赏:40  手机版
解决时间 2021-07-29 04:47
我有一个Temp.sql脚本文件,java的中用JDBC导入sql脚本,我用Statement.execute("source d:okercn.sql") 和executeQuery("source d:okercn.sql"),
Statement.addBatch("source d:okercn.sql");
Statement.executeBatch();都不行
提示的
java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'source d:okercn.sql' at line 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2998)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2927)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:956)
at Insert.Initialization.Insert(Initialization.java:49)
at Insert.Initialization.main(Initialization.java:58)
应该怎么做?
最佳答案

之前也有人问过这样的问题,这是我的建议



1. 可以看看JAVA的这个方法:


java.lang.Runtime.getRuntime().exec();


缺点:由于你的数据库密码为空,所以用这个方法 .bat也无法运行


2.用数据流读入SQL文件,然后用 String.toString().split(";"); 来分离出各个单独的SQL语句,一个一个的执行。


缺点:如果SQL文件里有注释部分,就会麻烦点。


3.用Ant写脚本执行


4.数据库工具执行



我还比较会选择3,4,数据库的操作,特别是对表结构的改变,还是在数据库里执行会比较好


比如删表操作,就最好不要写在代码,在数据库里,误删除还能rollback,程序里就麻烦了

全部回答
source d:okercn.sql 把这改成d:\\okercn.sql试试
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
江汉区武汉Yucha御茶这个地址怎么能查询到,
G3手机联通能用吗?
自己以前犯的错 好多错事自己都不能饶恕自己
N72手机图标问题
QQ英雄岛红钻能领取游戏礼品吗
网名在聊天是显示不正常
开了淘宝店怎么经营,淘宝新店怎么经营?
湖滨区三门峡阿希叶西部特产专卖哪位知道具体
哪有学咏春拳的地方
为什么男孩总在女孩面前让她们显得高调呀?
请问下广州这那里有盗版网络小说批发
怎么下叉才最有用啊!
哪个国家的大学好
泌阳县驻马店四季花城大酒店这个地址在什么地
介绍下哈尔滨的大学~~
推荐资讯
世界上真有《向天真女孩投降》的女主角一样的
萨尔图区大庆封后这个地址怎么能查询到,着急
怎样才能点亮丝路英雄的图标?
婚前却上了床?是为了什么?(偷情)
宁乡市长沙高斯卫浴地址在什么地方,想今天过
找个人帮我(或者教我)破解学习光盘里面隐藏
麻烦介绍一下,海南现在流行什么冬帽
酒店员工口号,我需要一个有团队精神的 队名口
有没有坚实耐用,功能强大超常待机的直板手机
DNF里硬直是什么东东…对太刀红眼重要吗
魔兽世界圣骑士武器的第一个任务是什么
邵东市邵阳螺鼎记螺蛳粉(邵东县65分店)地址在
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?