从JDBC

时间:2018-04-02 09:47:14

标签: java jdbc stringbuilder

我的要求是从.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关键字,按关键字排序和其他关键字。

我还有其他方法可以做到这一点,我不会遇到这样的问题吗?

2 个答案:

答案 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);