</pre><p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Arial; font-size:14px; line-height:26px"><pre name="code" class="java">public boolean tableIsExist(String tabName, SQLiteDatabase db) { boolean result = false; if (tabName == null) { return false; } Cursor cursor = null; try { String sql = "select count(*) as c from sqlite_master where type ='table' and name ='" + tabName.trim() + "' "; cursor = db.rawQuery(sql, null); if (cursor.moveToNext()) { int count = cursor.getInt(0); if (count > 0) { result = true; } } } catch (Exception e) { // TODO: handle exception } return result; }
对sqlite_master表查询不但可以得到建表的sql语句,还可以获取该数据库内的trigger信息
而在纯java环境下对SQL数据库查询是否目标表格存在的时候可以更简单:
java.sql.Connection con = getYourConnection(); ResultSet rs = con.getMetaData().getTables(null, null, "yourTable", null ); if (rs.next()) { //yourTable exist }else { //yourTable not exist }