SQLite高级语句查询

double altitude, int createdBy, long creationDate, int lastUpdateBy,

long lastUpdateDate, String street, String address) {

ContentValues contentValues = new ContentValues();

contentValues.put(Constant.IMAGE_ID, imageId);

contentValues.put(Constant.IMAGE, BitmapUtils.bitmapToBytes(bitmap));//图片转为二进制

contentValues.put(Constant.ANGLE, angle);

contentValues.put(Constant.WIDTH, width);

contentValues.put(Constant.HEIGHT, height);

contentValues.put(Constant.DPI_WIDTH, dpiWidth);

contentValues.put(Constant.DPI_HEIGHT, dpiHeight);

contentValues.put(Constant.GEO_MAP_INFO, geoMap);

contentValues.put(Constant.LONGITUDE, longitude);

contentValues.put(Constant.LATITUDE, latitude);

contentValues.put(Constant.ALTITUDE, altitude);

contentValues.put(Constant.CREATED_BY, createdBy);

contentValues.put(Constant.CREATION_DATE, creationDate);

contentValues.put(Constant.LAST_UPDATED_BY, lastUpdateBy);

contentValues.put(Constant.LAST_UPDATED_DATE, lastUpdateDate);

contentValues.put(Constant.STREET, street);

contentValues.put(Constant.ADDRESS, address);

contentValues.put(Constant.IS_UPLOADED, 0);

contentValues.put(Constant.CAPTURE_TIME, creationDate);

// LogUtils.e("image: " + BitmapUtils.bitmapToBytes(context, bitmap));

db.insert(Constant.TABLE_RDD_IMAGES, null, contentValues);

}

2、删除数据

/**

  • 从表 rdd_images 中根据 imageId 删除数据

*/

public static void deleteFromRddImage(SQLiteDatabase db, String imageId) {

String delSql = "DELETE FROM " + Constant.TABLE_RDD_IMAGES +

" WHERE " + Constant.IMAGE_ID + " = “” + imageId + “”";

db.execSQL(delSql);

LogUtils.e(“deleteFromRddImage”);

}

3、查询数据的个数

/**

  • 根据 imageId 从表 rdd_image_damages 查询出信息 的个数

  • @param db 数据库对象

  • @param imageId imageId

  • @return

*/

public static int queryGetCount(SQLiteDatabase db, String imageId) {

// String sql = "SELECT COUNT(image_id) FROM rdd_image_damages WHERE image_id = “imageId” ";

String sql = “SELECT COUNT(” + Constant.IMAGE_ID + ") " +

"FROM " + Constant.TABLE_RDD_IMAGE_DAMAGES +

" WHERE " + Constant.IMAGE_ID + " = “” + imageId + “”";

Cursor cursor = db.rawQuery(sql, null);

cursor.moveToFirst();

int count = cursor.getInt(0);

cursor.close();

LogUtils.e(“count:” + count);

return count;

}

4、查询 5公里矩形范围内的病害信息的经纬度

/**

  • 根据地图当前中心点的经纬度 查询 5公里矩形范围内的病害信息的经纬度

  • @param db 数据库对象

  • @param longitude 经度

  • @param latitude 纬度

*/

public static List queryLonLatInCertainArea(SQLiteDatabase db,

double longitude, double latitude) {

List list = new ArrayList<>();

double longitude1 = longitude + DistanceUtil.oneKM2Lon * 5;

double longitude2 = longitude - DistanceUtil.oneKM2Lon * 5;

double latitude1 = latitude + DistanceUtil.oneKM2Lat(latitude) * 5;

double latitude2 = latitude - DistanceUtil.oneKM2Lat(latitude) * 5;

String sql = "SELECT " + Constant.LONGITUDE + " , " + Constant.LATITUDE +

" FROM " + Constant.TABLE_RDD_IMAGES +

" WHERE " + Constant.LONGITUDE + " BETWEEN " + longitude2 + " AND " + longitude1 +

" AND " + Constant.LATITUDE + " BETWEEN " + latitude1 + " AND " + latitude2;

Cursor cursor = db.rawQuery(sql, null);

while (cursor.moveToNext()) {

double longitudeReturn = cursor.getDouble(cursor.getColumnIndex(Constant.LONGITUDE));

double latitudeReturn = cursor.getDouble(cursor.getColumnIndex(Constant.LATITUDE));

LatLng bean = new LatLng(latitudeReturn, longitudeReturn);

list.add(bean);

}

return list;

}

5、查询并返回一个数据列表

/**

  • 从本地数据库查询十条未上传的数据,放到一个列表中

  • @param db 数据库对象

  • @return list

*/

public static ArrayList queryRddImageList(SQLiteDatabase db) {

String sql = "SELECT " + Constant.IMAGE_ID + " , " + Constant.IMAGE + " , " +

Constant.ANGLE + " , " + Constant.WIDTH + " , " + Constant.HEIGHT + " , " +

Constant.DPI_WIDTH + " , " + Constant.DPI_HEIGHT + " , " + Constant.GEO_MAP_INFO + " , " +

Constant.LONGITUDE + " , " + Constant.LATITUDE + " , " + Constant.STREET + " , " +

Constant.ADDRESS + " , " + Constant.ALTITUDE + " , " + Constant.CAPTURE_TIME +

" FROM " + Constant.TABLE_RDD_IMAGES +

" WHERE " + Constant.IS_UPLOADED + " = 0 " +

" LIMIT 10";

Cursor cursor = db.rawQuery(sql, null);

ArrayList list = new ArrayList<>();

while (cursor.moveToNext()) {

String imageId = cursor.getString(cursor.getColumnIndex(Constant.IMAGE_ID));

byte[] image = cursor.getBlob(cursor.getColumnIndex(Constant.IMAGE));

double angle = cursor.getDouble(cursor.getColumnIndex(Constant.ANGLE));

double width = cursor.getDouble(cursor.getColumnIndex(Constant.WIDTH));

double height = cursor.getDouble(cursor.getColumnIndex(Constant.HEIGHT));

double dpiWidth = cursor.getDouble(cursor.getColumnIndex(Constant.DPI_WIDTH));

double dpiHeight = cursor.getDouble(cursor.getColumnIndex(Constant.DPI_HEIGHT));

String geoMapInfo = cursor.getString(cursor.getColumnIndex(Constant.GEO_MAP_INFO));

double longitude = cursor.getDouble(cursor.getColumnIndex(Constant.LONGITUDE));

double latitude = cursor.getDouble(cursor.getColumnIndex(Constant.LATITUDE));

double altitude = cursor.getDouble(cursor.getColumnIndex(Constant.ALTITUDE));

String address = cursor.getString(cursor.getColumnIndex(Constant.ADDRESS));

String street = cursor.getString(cursor.getColumnIndex(Constant.STREET));

long captureTime = cursor.getLong(cursor.getColumnIndex(Constant.CAPTURE_TIME));

String imageDataBase64 = BitmapUtils.byteArrayToBase64(image);

最后附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总)

面试成功其实是必然的,因为我做足了充分的准备工作,包括刷题啊,看一些Android核心的知识点,看一些面试的博客吸取大家面试的一些经验,下面这份PDF是我翻阅了差不多1个月左右一些Android大博主的博客从他们那里取其精华去其糟泊所整理出来的一些Android的核心知识点, 全部都是精华中的精华,我能面试到现在资深开发人员跟我整理的这本Android核心知识点有密不可分的关系,在这里本着共赢的心态分享给各位朋友。

这份PDF囊括了JVM,Java集合,Java多线程并发,Java基础,生命周期,微服务, 进程,Parcelable 接口,IPC,屏幕适配,线程异步,ART,架构,Jetpack,NDK开发,计算机网络基础,类加载器,Android 开源库源码分析,设计模式汇总,Gradle 知识点汇总…

由于篇幅有限,就不做过多的介绍,大家请自行脑补
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
oyRToL-1714959576594)]

这份PDF囊括了JVM,Java集合,Java多线程并发,Java基础,生命周期,微服务, 进程,Parcelable 接口,IPC,屏幕适配,线程异步,ART,架构,Jetpack,NDK开发,计算机网络基础,类加载器,Android 开源库源码分析,设计模式汇总,Gradle 知识点汇总…

由于篇幅有限,就不做过多的介绍,大家请自行脑补
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值