我的要求是从.txt文件中读取select sql查询(一个大约300行的查询)并通过JDBC运行它。我试过这样做并且在某些方面也取得了成功,但是现在我已经开始遇到很多麻烦了。
在读取文件并从JDBC运行时,我经常收到错误,说找不到FROM关键字,SQL命令没有正确结束,sql异常。
在代码方面,我正在读取.txt文件并将其附加到如下所示的stringbuffer中: queryFile = new File(" file location");
BufferedReader buffer=new BufferedReader(new FileReader(queryFile));
StringBuilder sb = new StringBuilder();
String line;
while((line=buffer.readLine()) !=null){
sb.append(line);
}
sql=sb.toString();
System.out.println(sql);
当我在字符串构建器中打印sql语句并将其与原始查询进行比较时,似乎缺少空格,这就是为什么它无法识别FROM关键字,按关键字排序和其他关键字。
我还有其他方法可以做到这一点,我不会遇到这样的问题吗?
答案 0 :(得分:1)
我会替换
sb.append(line);
带
sb.append(" ").append(line);
答案 1 :(得分:0)
得到了答案。 上面代码中缺少的是sb.append('\ n')。我没有在我的代码中附加新的行字符,这就是为什么格式化不符合标记。
正确的代码应该是:
BufferedReader buffer = new BufferedReader(new FileReader(queryFile));
StringBuilder sb = new StringBuilder();
String line;
while((line=buffer.readLine()) !=null){
sb.append(line);
sb.append('\n')
}
sql=sb.toString();
System.out.println(sql);