SQLite2MySQL 转换

前端之家收集整理的这篇文章主要介绍了SQLite2MySQL 转换前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

sqlite2MysqL

还是得用工具,而且必须纯福利的才行(po jie ban)。网友推荐这神器,ESF Database Migration Toolkit Professional v7.3.27

v6 的不行,很多字段转不了,用 v7 or v8 吧!

http://download.csdn.net/detail/liema2000/5169824

http://www.ttrar.com/html/ESF-Database-Migration-Toolkit-Profe.html

ESF Database Migration Toolkit Pro 8.2.07 | 37 Mb

sql COUNT 函数返回 int

RS 获取 COUNT() 值的时候,直接 getInt(1) 抛出 before start 异常,必须先 resultset.next() 一下才行;sqlite 无须这样

SELECT COUNT(id) AS count FROM news  WHERE

JDBC 兼容代码如下:

if(jdbcConn.toString().indexOf("MysqL") != -1){
	arr = resultset.next() ?  resultset.getInt(1) : null;
}else{
	// sqlite
	arr = resultset.isBeforeFirst() ? resultset.getInt(1) : null;
}
后来发现 sqlite 用 MysqL方法也行。

不能获取 MysqL alias 名称

获取表各个字段的元数据时,发现不能获取 MysqL alias 名称,也就是 table.xx AS foo,不能遍历出这个 foo。

var columnName = ResultSetMetaData.getColumnName(colIndex);
后来发现应该用 getColumnLabel() 而不是 getColumnName();

觉得 sqlite 不够严谨,而 MysqL 有作区分了。

CREATE 返回主键

必须这样,sqlIite 不用。

rowNumber = statement.executeUpdate(sql,Statement.RETURN_GENERATED_KEYS);
ResultSet rs = statement.getGeneratedKeys();// 创建新纪录,返回id
if (rs.next()) {  
	rowNumber = rs.getInt(1);   
//		                System.out.println("数据主键:" + id);   
} 

猜你在找的Sqlite相关文章