最近在做一个CMS系统,不免会在CMS安装阶段会有一个Install database阶段,需要用到安装数据库,之前已经用mysqldunp命令到处一个sql格式的文件,现在需要将它导入数据库。由于java里没有直接针对于数据库的文件操作。只能考虑其他办法:这里是采用读取文件拼接成字符串,并批量处理(addBatch)的方式:代码如下:

private static File file = new File("E:\\data\\tulufan.sql");

private static InputStreamReader fileReader;

static {

try {

if (!file.exists()) {

file.createNewFile();

}

fileReader = new InputStreamReader(new FileInputStream(file),

"UTF-8");

} catch (Exception e) {

e.printStackTrace();

}

}

public void readSQLFile() {

BufferedReader bufferedReader = new BufferedReader(fileReader);

try {

StringBuilder sBuilder = new StringBuilder("");

String str = bufferedReader.readLine();

while (str != null) {

// 去掉一些注释,和一些没用的字符

if (!str.startsWith("#") && !str.startsWith("/*")

&& !str.startsWith("–") && !str.startsWith("\n"))

sBuilder.append(str);

str = bufferedReader.readLine();

}

String[] strArr = sBuilder.toString().split(";");

List strList = new ArrayList();

for (String s : strArr) {

strList.add(s);

System.out.println(s);

}

// 创建数据连接对象,下面的DBConnection是我的一个JDBC类

DBConnection db = new DBConnection();

db.executeBatchByStatement(strList);

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

bufferedReader.close();

fileReader.close();

} catch (Exception e) {

}

}

return true;

}/*******************************

** DBConnection类中批量处理方法

*/

public boolean executeBatchByStatement(List sqlList) {

boolean ret = false;

if (conn != null) {

Statement stmt = null;

try {

conn.setAutoCommit(false);

stmt = conn.createStatement();

for (String s : sqlList) {

stmt.addBatch(s);

}

stmt.executeBatch();

conn.commit();

ret = true;

} catch (BatchUpdateException e) {

e.printStackTrace();

try {

conn.rollback();

} catch (SQLException e1) {

e1.printStackTrace();

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

conn.setAutoCommit(true);

if (stmt != null) {

stmt.close();

stmt = null;

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

return ret;

}

当然,这只是我个人想出来的一个办法,愚陋之见还望大家批评指教,共同提高啊。。。代码有什么问题的可以QQ我,共同商讨啊。。

java里面怎么导入sql文件_java将SQL文件导入到数据库相关推荐

  1. java sql脚本_Java 执行 SQL 脚本文件

    是拷贝的别人的,以备学习 package com.unmi.db; import java.io.FileInputStream; import java.io.InputStream; import ...

  2. java 读取.sql文件_java解析sql文件

    packagecom.athena.ckx.util;importjava.io.FileInputStream;importjava.io.InputStream;importjava.sql.Co ...

  3. java 快速读文件_java快速读取文件

    如何优雅读取文件,java想简单读写一个文件都要上10行代码.幸好guava和apache commons 都有提供简单操作文件工具. 简单介绍读取文件最后一行.读取文件第一行.读取大文件.往大文件追 ...

  4. java sql脚本_java执行sql脚本

    package com.unmi.db; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Con ...

  5. java 解压与压缩代码_Java实现多文件压缩和解压缩代码详解

    Java实现多文件压缩和解压缩代码 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...

  6. JAVA编程TXT文件_java读写txt文件的方法

    java读写txt文件的方法 发布时间:2020-06-26 15:54:02 来源:亿速云 阅读:111 作者:Leah 本篇文章为大家展示了java读写txt文件的方法,代码简明扼要并且容易理解, ...

  7. java读取 info.plist源码_Java 解析 IPA 文件,读取 Info.plist 信息-Go语言中文社区

    在做移动MDM功能的时候,就遇到了这样一个问题,当用户上传IPA文件时,我如何知道这个IPA文件的相关信息呢?IPA文件有一个很重要的文件Info.plist 就类似于Android程序的Manife ...

  8. java中怎么剪切文件_java中实现文件复制、剪切和删除

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...

  9. java pdf水印排布问题_Java实现pdf文件添加水印,铺满全页。

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/duan1309/article/details/81232300 因项目需要将word文件(.doc ...

  10. java nio 文件_Java nio 的文件处理

    一.创建一个大文件 下载文件时往往会创建一个指定大小的空文件 package com.lazy.nio; import java.io.IOException; import java.nio.Byt ...

最新文章

  1. 手把手教你 用C++实现一个 可持久化 的http_server
  2. Mxnet - Understanding weight shape for Dense Layer MXNET权重参数形状的疑惑(内部设计形式行列谁在前不用管,多个转置运算而已)
  3. mysql if语句 oracle,Oracleifelse语句的写法实例
  4. db4o Tutorial 中文翻译(十一)
  5. 堆垛管理,下料管理系统
  6. 树和二叉树的转换代码python_python数据结构之二叉树的统计与转换实例
  7. txt如何单独单独选择一列_散列| 单独链接以解决冲突
  8. linux虚拟机按键不好用,Linux 虚拟机 vim使用delete键没有退格效果
  9. HowToDoInJava Spring 教程·翻译完成
  10. Git学习文档之二 应用总结-svn迁移到git
  11. Gym102174 (The 14-th BIT Campus Programming Contest)
  12. 凸优化第四章凸优化问题 4.6 广义不等式约束
  13. 2022G2电站锅炉司炉考试试题及答案
  14. python flask 路由_Python之Flask 路由与模板语法
  15. 孝感网站建设多少钱,孝感做企业网站多少钱
  16. Oracle什么情况使用omf,从参数取值看Oracle OMF特性
  17. 计算机网络运输层知识点,计算机网络复习——Ch6传输层
  18. Docker从入门到干活,看这一篇够了!
  19. idea重装后打不开,点起来没反应(难受)
  20. 常见HTTP错误码定义

热门文章

  1. 机器学习中的交叉验证与有关定理
  2. C#生成的图片无法在ps中打开
  3. mysql 的 前导零_将前导零添加到MySQL列?
  4. 赛码浪潮笔试题库软件实施岗位_赛码 -HRTechChina中国人力资源科技-向上的力量!...
  5. DETR3D:将DETR用于3D目标检测任务
  6. 无人驾驶:车道线检测,附代码
  7. 机器学习-卷积神经网络简介
  8. JAVA连接SQL Server数据库的端口配置操作步骤
  9. 脚本控制向Android模拟拨打电话,发送短信,定位设置功能
  10. 10a大电流稳压芯片_稳压二极管你见过,但是它的这些参数你知道吗