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);

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
nEoMjT11-1715831176281)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值