一种sqlite DB文件数据转存入Mysql的方法
2017-06-15 17:03
309 查看
由于自己的小项目中需要将sqlite数据库文件数据转存入mysql供服务器端计算或存储使用,网上搜集了一些转换方法,其中有些需要下载额外软件比如Sqlite Expert或者MySql数据库管理工具(Native)等,而这些软件自己以后开发过程中很少使用,加上自己本本各项硬件性能限制,最后还是选用Java来实现。希望对需要实现sqlite转存mysql,而且也是对java比较熟悉的人伙伴有所帮助。
另外,关于服务器端不用sqlite而转存mysql的原因,可以看这篇博文:
选择数据库SQLite还是MySQL?
下面切入正题:
使用JDBC连接数据库配置大同小异,sqlite数据库以单个文件的形式存在,只需驱动及url名称即可。(此处代码实现中sqlite参数配置在properties中,获取封装在JDBCUtils工具类中而mysql使用c3p0数据库连接池,getConnection()由C3P0Utils工具类提供。)
事务和批处理混合使用,Junit亲测24300条记录批处理耗时耗时500ms,整个方法执行耗时2000ms。代码如下:
另外,关于服务器端不用sqlite而转存mysql的原因,可以看这篇博文:
选择数据库SQLite还是MySQL?
下面切入正题:
使用JDBC连接数据库配置大同小异,sqlite数据库以单个文件的形式存在,只需驱动及url名称即可。(此处代码实现中sqlite参数配置在properties中,获取封装在JDBCUtils工具类中而mysql使用c3p0数据库连接池,getConnection()由C3P0Utils工具类提供。)
事务和批处理混合使用,Junit亲测24300条记录批处理耗时耗时500ms,整个方法执行耗时2000ms。代码如下:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import org.junit.Test; /** * 实现数据从sqlite单文件数据库转存入mysql * @author Cassie * */ public class DB2Mysql { @Test /** * 事务和批处理混合使用,将数据从sqlite单文件数据库转存入mysql */ public void DB2Mysql() { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; Connection sqlConn = null; PreparedStatement pstmt = null; try { // sqlite,配置在properties文件中,自己封装了JDBCUtils类获取 Class.forName(JDBCUtils.getProperty("driverClassName")); // 静态方法调用了启动类加载器,确保该类被加载并已连接 conn = DriverManager.getConnection(JDBCUtils .getProperty("connectionName")); stmt = conn.prepareStatement("select * from wifidatabase"); rs = stmt.executeQuery(); // mysql,通过c3p0连接池配置 sqlConn = C3P0Utils.getConnection(); sqlConn.setAutoCommit(false);// 将自动提交关闭 String sql = "INSERT INTO ap_info(bssid,ssid,rss,area,x,y,time) VALUES(?,?,?,?,?,?,?)"; pstmt = sqlConn.prepareStatement(sql); while (rs.next()) { pstmt.setString(1, rs.getString("BSSID")); pstmt.setString(2, rs.getString("SSID")); pstmt.setString(3, rs.getString("level")); pstmt.setString(4, rs.getString("area")); pstmt.setString(5, rs.getString("x")); pstmt.setString(6, rs.getString("y")); pstmt.setString(7, rs.getString("time")); pstmt.addBatch(); } pstmt.executeBatch();// 执行批处理! sqlConn.commit();// 执行完后,手动提交事务 sqlConn.setAutoCommit(true);// 再把自动提交打开 sqlConn.close(); conn.close(); } catch (Exception e) { System.out.println(e.getMessage()); System.out.println(e.toString()); } } }
相关文章推荐
- VB6数据导出到Excel文件,一种设计界面查询条件的方法,一种简单加密方法(改写)
- mysql 把备份数据文件还原后乱码处理方法
- 在大数据情况下MySQL的一种简单分页优化方法
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- MySQL中MyISAM文件损坏时的一种修复方法
- 将数据从MSSQL Server导到mysql的一种方法
- 将主机IDS OSSEC日志文件存入MYSQL的方法
- MySQL 快速地从文件中插入大量数据记录的方法
- mysql数据文件迁移到新硬盘分区的方法
- 三版写文件的一种方法。TFileText,逐行读取数据。
- 有没有一种方法可以将文件和数据从硬盘完全清除
- mysql更改数据文件目录方法
- MySQL更改数据文件默认存储目录的方法
- 黄聪:Mysql数据库还原备份提示MySQL server has gone away 的解决方法(备份文件数据过大)
- MySQL从数据库文件恢复数据的方法
- 将主机IDS OSSEC日志文件存入MYSQL的方法
- php使用指定编码导出mysql数据到csv文件的方法
- mysql导入sql文件出错的一种解决方法
- 导入数据到mysql的一种简单的方法
- mysql数据文件迁移到新的硬盘分区的方法