Android中打开外部数据库操作
2017-10-24 10:41
190 查看
Android中打开外部数据库进行查询,下面是详细代码
public static String getAddress(Context context, String number) { String location = ""; // 查询数据库 File file = new File(context.getFilesDir(), "address.db"); // 1.打开数据库 // 打开已有的数据 // 参数1:数据库的路径 // 参数2:游标工厂 // 参数3:操作的权限 // getAbsolutePath() : 获取文件的绝对路径 SQLiteDatabase database = SQLiteDatabase.openDatabase( file.getAbsolutePath(), null, SQLiteDatabase.OPEN_READONLY); // 2.查询数据库 //判断号码的操作,号码的位数,号码的规则:第一位1,第二位34578,第三位0-9 //正则表达式^1[34578]\d{9}$ if (number.matches("^1[34578]\\d{9}$")) { // substring : 包含头不包含尾 Cursor cursor = database.rawQuery( "select location from data2 where id=(select outkey from data1 where id=?)", new String[] { number.substring(0, 7) }); //3.解析cursor获取数据 if (cursor.moveToNext()) { location = cursor.getString(0); } //4.关闭数据库 cursor.close(); }else{ //判断号码不是11位的情况 switch (number.length()) { case 3://110 120 114 911 location="报警电话"; break; case 4://20年前 location="穿越电话"; break; case 5://10086 10010 100000 location = "客服电话"; break; case 6://虚拟电话 location="虚拟电话"; break; case 7://座机电话 case 8: location="座机电话"; break; default:// 010 1234567 10位 010 12345678 11位 0372 12345678 12位 //长途电话 //startsWith : 以什么样的字符开头 if (number.length() >= 10 && number.length() <= 12 && number.startsWith("0")) { //不同的区号也是有不同的归属地的,所以也要根据区号查询归属 //查询3位区号的归属地 010 10 String area = number.substring(1, 3); Cursor cursor = database.rawQuery("select location from data2 where area=?", new String[]{area}); if (cursor.moveToNext()) { location = cursor.getString(0); //北京电信 -> 北京 河南安阳电信 -> 河南安阳 location = location.substring(0, location.length()-2); }else{ //如果3位没有查询出来,直接查询4位,0372 372 String area4 = number.substring(1, 4); Cursor cursor2 = database.rawQuery("select location from data2 where area=?", new String[]{area4}); if (cursor2.moveToNext()) { location = cursor2.getString(0); location = location.substring(0, location.length()-2); } } } break; } } database.close(); return location; }
相关文章推荐
- [置顶] Android数据库GreenDAO3.2.2的使用(三,GreenDao操作外部数据库----操作.db数据库)
- Android-Sqlite数据库_打开已有数据库操作Demo
- Android通讯录数据库介绍与基本操作(增删改查)
- Android 数据库SQLite的操作总结
- Android sqlite3 数据库批量操作
- Android数据库操作-正确的把数据插入到数据库中(2)
- android中的数据库操作
- Android程序员学PHP开发(40)-ThinkPHP5.0(12)后台操作数据库(3)修改-phpStudy+PhpStorm
- android基本方式对数据库的操作
- Android中SQLite数据库操作(2)——使用SQLiteDatabase提供的方法操作数据库
- Android数据库SD卡创建,及图片存、取操作!!
- Android中的数据库操作及内置SQLite使用和事务
- android中的文件操作详解以及内部存储和外部存储
- android中的文件操作详解以及内部存储和外部存储
- android 数据库的操作
- android中的数据库操作
- android系统数据库中多个数据表含有变量插入操作
- Android数据库高手秘籍(六)——LitePal的修改和删除操作
- android SQLite使用SQLiteOpenHelper类对数据库进行操作
- android数据库操作