java将SQL文件导入到数据库
2011-08-10 10:01
399 查看
最近在做一个CMS系统,不免会在CMS安装阶段会有一个Install database阶段,需要用到安装数据库,之前已经用mysqldunp命令到处一个sql格式的文件,现在需要将它导入数据库。由于java里没有直接针对于数据库的文件操作。只能考虑其他办法:这里是采用读取文件拼接成字符串,并批量处理(addBatch)的方式:代码如下:
** DBConnection类中批量处理方法
*/
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<String> strList = new ArrayList<String>(); 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<String> 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文件
- java实现将资源文件转化成sql语句导入数据库
- mysql导入sql文件、数据库时报错ERROR: ASCII '\0' appeared in the statement
- 如何将.SQL文件的数据导入到Mysql的数据库中
- 如何将sql文件导入数据库
- log4j 日志文件存储数据库的解决方案二(Java中写sql语句)
- java多线程,将oracle中数据导入到sql到文件(包括大字段转换成字符串)
- 【mysql】线上数据库sql文件导入本地错误的一种解决方案
- Pl/Sql无法导入其他(oracle)数据库的dmp文件的错误
- 怎么将导出的sql文件再次导入到数据库?
- 使用Navicat导出sql文件和导入数据库
- 如何向mysql导入数据库(。sql文件)
- Java 导入Excel文件到数据库
- 大数据量的csv文件如何导入到 sql 数据库
- Android读取sql文件并导入数据库
- mysql导入导出sql文件 window下 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u dbuser -p dbname >
- ORACLE 11g数据库导出文件.sql文件的导入
- mysql导入导出.sql文件备份还原数据库
- 使用pl/sql 工具导入dmp数据库文件