mysql到sqlite数据传输
背景介绍
mysql和sqlite 是两种常用的数据库,在日常使用中也是需要进行数据的交换。
在实际的工作中需要将mysql数据库表中的数据同步到sqlite对应的表中,主要有两种方法。第一种是使用Navicat里的数据传输,第二种是使用程序来实现。
第一种、程序实现
1、添加sqlite驱动
本项目是通过maven管理,在pom.xml中添加sqlite的驱动包依赖。
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.19.3</version>
</dependency>
2、复制模板文件
运用FileUtils来复制模板pad.db文件
String padPath = 'D:\\pad.db';
FileUtils.copyDirectory(new File(padPath),new File("c:\\pad.db");
3、建立sqlite连接
从mysql数据库中查询出拼接的字段,传输到sqlite数据库对应的表中。
//建立连接
Class.forName("org.sqlite.JDBC");
Connection c = DriverManager.getConnection("jdbc:sqlite:padPath" );
//设置为非自动提交
c.setAutoCommit(false);
//创建连接对象
Statement stmt = c.createStatement();
padSql = "SELECT * FROM user";
//查询mysql数据库中数据
padList = this.jdbcOperations.queryForList(padSql);
for (int i = 0; i < padList.size(); i++) {
map = padList.get(i);
sb = new StringBuilder();
sb.append("INSERT INTO user(");
sb.append("`id`, `name`, `sex`, `address`");
sb.append(") VALUES(");
sb.append("'").append(map.get("id")).append("',");
sb.append("'").append(map.get("name")).append("',");
sb.append("'").append(map.get("sex")).append("',");
sb.append("'").append(map.get("address")).append("'");
sb.append(")");
stmt.addBatch(sb.toString());
}
//批量提交执行
stmt.executeBatch();
c.commit();
//清除stmt1中积攒的参数列表
stmt.clearBatch();
第二种、Navicat数据传输
用Navicat连接mysql和sqlite数据库,可以通过Navicat自带的数据传输来实现数据的转移。
1、工具 –> 数据传输
2、源与目标数据库
这里选择源数据为mysql,目标数据库为sqlite 设置传输过程中出错继续
博客来源
【1】https://blog.csdn.net/winteror/article/details/10065047