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();
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); }