- </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
- }