Android 判断数据库中是否存在某个表
2016-03-08 17:50
489 查看
[java] view
plain copy
</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] view
plain copy
java.sql.Connection con = getYourConnection();
ResultSet rs = con.getMetaData().getTables(null, null, "yourTable", null );
if (rs.next()) {
//yourTable exist
}else {
//yourTable not exist
}
plain copy
</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] view
plain copy
java.sql.Connection con = getYourConnection();
ResultSet rs = con.getMetaData().getTables(null, null, "yourTable", null );
if (rs.next()) {
//yourTable exist
}else {
//yourTable not exist
}
相关文章推荐
- Android 6.0 运行时权限处理完全解析
- Android SDKManger 更新设置
- android开源框架
- Android Binder机制 (1~12)
- Android在线中文API
- 奇葩的Android Bug: Unable to start service Intent
- Android自动清理 无用 多余 未引用 未关联资源工具
- Android Binder机制(三) ServiceManager守护进程
- Android 开发者的 RxJava 详解
- Android Design支持库TabLayout 来实现tab效果
- Android Binder机制(一) Binder的设计和框架
- Android Cordova 插件开发之插件开发过程中遇到的问题
- Android Checkbox详解
- android里R.layout.的问题
- Android之ViewTreeObserver
- android Json解析详解(详细代码)
- android studio 打包混淆jar
- android Matrix图片手势放大缩小,拖动
- Android的classloader
- Android 日常开发总结的技术经验 60 条