irpas技术客

浅入Android_一只快乐的蓝胖纸

未知 8153

?

1. dcloud_uniplugins 注册

{ "type": "module", "name": "PDUtils", "class": "com.PanDianUtils" }

2.新增数据

public static Boolean savaSheetGoodsInfo(Context context,SheetGoods options){ boolean result=false; DatabaseUtil databaseUtil = new DatabaseUtil(context, null);SQLiteDatabase db = null; try{ db = databaseUtil.getWritableDatabase(); ContentValues values = new ContentValues(); values.clear(); values.put("sheetId",options.getSheetId()); values.put("goodid",options.getGoodsId()); values.put("colorid",options.getColorId()); values.put("longid",options.getLongId()); values.put("sizeid",options.getSizeId()); values.put("sizedesc",options.getSizedesc()); values.put("colordesc",options.getColordesc()); values.put("longdesc",options.getLongdesc()); values.put("goodsno",options.getGoodsno()); values.put("filedname",options.getFieldName()); values.put("goodsname",options.getGoodsName()); values.put("colorcode",options.getColorCode()); values.put("quantity", options.getQuantity()); values.put("scanTime", System.currentTimeMillis()); db.insert("scang", null, values); result =true; }catch (Exception ex){ }finally { //关闭数据库 if (db!=null){ db.close(); } } return result; }

3.单表查询

public static GoodsInfo getGoodsInfo (Context context,String sheetId,String goodsId,String colorID,String LongId,String sizeId){ GoodsInfo goodsInfo =new GoodsInfo(); DatabaseUtil databaseUtil = new DatabaseUtil(context, null); SQLiteDatabase db = databaseUtil.getWritableDatabase(); String boxId=""; int count = 0; try { Cursor cursor = db.rawQuery("select sum(quantity) as sumquantity ,goodsno,goodsname,colordesc,longdesc,sizedesc" +" from scang " + " where sheetId=?" + " and goodid=?"+ " and colorid=?"+ " and longid=?"+ " and sizeid=?", new String[]{sheetId,goodsId,colorID,LongId,sizeId}); while (cursor.moveToNext()) { goodsInfo.setYisaoshu (cursor.getInt(cursor.getColumnIndexOrThrow("sumquantity"))); goodsInfo.setGoodsName(cursor.getString(cursor.getColumnIndexOrThrow("goodsname"))); goodsInfo.setGoodsNo(cursor.getString(cursor.getColumnIndexOrThrow("goodsno"))); goodsInfo.setBarcode(""); goodsInfo.setColordesc(cursor.getString(cursor.getColumnIndexOrThrow("colordesc"))); goodsInfo.setLongdesc(cursor.getString(cursor.getColumnIndexOrThrow("longdesc"))); goodsInfo.setSizedesc(cursor.getString(cursor.getColumnIndexOrThrow("sizedesc"))); goodsInfo.setChayishu(0); } } catch (Exception ex) { } finally { //关闭数据库 if (db != null) { db.close(); } } return goodsInfo; }

4.单表删除

public static Boolean deleteUniCode(Context context,String unicode,String sheetId){ boolean result = false; DatabaseUtil databaseUtil = new DatabaseUtil(context, null); SQLiteDatabase db = null; try{ db = databaseUtil.getReadableDatabase(); db.execSQL(" delete from uniquecode where unicode=? and sheetId=?", new String[]{unicode,sheetId}); result = true; }catch (Exception ex){ }finally { //关闭数据库 if (db!=null){ db.close(); } } return result; }

5.左连接 + 子查询

public static Map<String, Integer> getBottom(Context context,String sheetId){ Map<String,Integer> map = new HashMap<>(); DatabaseUtil databaseUtil = new DatabaseUtil(context, null); SQLiteDatabase db = null; try { db = databaseUtil.getReadableDatabase(); Cursor cursor = db.rawQuery(" select ifnull(a.quantity,0) as quantity,ifnull(b.kuanShu,0) as kuanShu from \n" + " ( " + " SELECT sum(quantity) as quantity ,sheetId,longDesc, colorDesc,sizeDesc,goodsNo,goodid,colorId,longId,sizeId \n" + " from scang where scang.sheetId = ? \n" + " group by scang.sheetId\n" + " ) a \n" + " left join \n" + " ( " + " select count(distinct goodsId) as kuanShu,sheetId,longDesc, colorDesc,sizeDesc,goodsNo,goodid ,colorId,longId,sizeId \n" + " from scang \n" + " where scang.sheetId = ? \n" + " group by scang.sheetId,scang.goodid\n" + " ) b on a.sheetId= b.sheetId" , new String[]{sheetId,sheetId}); while (cursor.moveToNext()){ map.put("zongsaomiaoshu",cursor.getInt(cursor.getColumnIndexOrThrow("quantity"))); map.put("kuanShu",cursor.getInt(cursor.getColumnIndexOrThrow("kuanShu"))); return map; } }catch (Exception e){ }finally { } return map; }

6.查询结果(1)如果 货品在scangoods不存在也会直接赋值?quantity ; 查询结果(2)则是 0

1. Cursor cursor = db.rawQuery("select a.sheetId, a.goodsname, a.goodsno,a.goodid, ifnull(b.quantity,0) as quantity from\n" + "(\n" + "SELECT sheetId, goodsname, goodsno,goodid, quantity\n" + "from sheetg\n" + "where sheetg.sheetId =?\n" + "GROUP BY sheetg.goodid\n" + ")a\n" + "LEFT JOIN\n" + "(\n" + "SELECT sum(quantity) as quantity ,goodid,sheetId\n" + "from scang\n" + "where scang.sheetId =?\n" + ")b on a.sheetId = b.sheetId " , new String[]{sheetId,sheetId}); 2. Cursor cursor = db.rawQuery("select a.sheetId, a.goodsname, a.goodsno,a.goodid, ifnull(b.quantity,0) as quantity from\n" + "(\n" + "SELECT sheetId, goodsname, goodsno,goodid, quantity\n" + "from sheetg\n" + "where sheetg.sheetId =?\n" + "GROUP BY sheetg.goodid\n" + ")a\n" + "LEFT JOIN\n" + "(\n" + "SELECT sum(quantity) as quantity ,goodid,sheetId\n" + "from scang\n" + "where scang.sheetId =?\n" + ")b on a.sheetId = b.sheetId and a.goodid=b.goodid" , new String[]{sheetId,sheetId});

7.绝对值取值 (quantity不管是正数还是负数,都会取正数)

Math.abs(quantity)

8.嵌套使用

public static List<SheetGoods> checkChouCode(Context context, String sheetId, String barcode){ List<SheetGoods> list = new ArrayList<>(); DatabaseUtil databaseUtil = new DatabaseUtil(context, null); SQLiteDatabase db = null; try { db = databaseUtil.getReadableDatabase(); Cursor cursor = db.rawQuery("select * from barcode WHERE barcode=?",new String[]{barcode}); while (cursor.moveToNext()){ String goodsid = cursor.getString(cursor.getColumnIndexOrThrow("goodsid")); Cursor cursor1 = db.rawQuery("select * from sheetg WHERE goodsid=? and sheetId=?",new String[]{ goodsid,sheetId}); while (cursor1.moveToNext()) { SheetGood sheetGoods = new SheetGood(); sheetGoods.setGoodsno(cursor1.getString(cursor1.getColumnIndexOrThrow("goodsno"))); sheetGoods.setQuantity(cursor1.getInt(cursor1.getColumnIndexOrThrow("quantity"))); sheetGoods.setColordesc(cursor1.getString(cursor1.getColumnIndexOrThrow("colordesc"))); sheetGoods.setSizedesc(cursor1.getString(cursor1.getColumnIndexOrThrow("sizedesc"))); sheetGoods.setLongdesc(cursor1.getString(cursor1.getColumnIndexOrThrow("longdesc"))); list.add(sheetGoods); } } }catch (Exception exception){ String sheet=exception.getMessage(); }finally { if (db!=null){ db.close(); } } return list; }

9.更新表

public static void updateSheetBoxQuantity(Context context,String sheetId,Long boxId) { DatabaseUtil databaseUtil = new DatabaseUtil(context, null); SQLiteDatabase db = null; try { db = databaseUtil.getReadableDatabase(); db.execSQL("update sheetb set jianNum=" + "(select sum(quantity) from sheetd where sheetId=? and boxId=?)" + "where sheetId=? and boxId=?" , new String[]{sheetId, String.valueOf(boxId), sheetId, String.valueOf(boxId)}); } catch (Exception ex) { String EX = ex.getMessage(); } finally { //关闭数据库 if (db != null) { db.close(); } } }

10.判断某个字段是否未空?

if (!"".equals(zancun.getSheetCode())){}

11. 自定义方法,直接用来在uni-app中调用

@JSMethod(uiThread = true) //表示 JScript 方法。 此类属于名称绑定类别 public void getSku(JSONObject options, JSCallback jsCallback){ myCallback = jsCallback; int OriQuantity=PanDian.getOriQuantityByGoods(mWXSDKInstance.getContext() ,options.getString("sheetId") ,options.getString("goodsId") ,options.getString("colorId") ,options.getString("longId") ,options.getString("sizeId")) ; Map<String, Object> map = new HashMap<>(); map.put("code", "200"); map.put("msg", "查询成功"); map.put("data",OriQuantity); myCallback.invoke(map); }

12.uni-app 调用 android 方法

????????requireNativePlugin:内置原生插件,uni-app已默认集成,支持直接在内置基座运行。

const PDUtils = uni.requireNativePlugin('PDUtils'); // PanDianUtils 为原生插件名称 PanDianUtils.clear({ "sheetId": this.panDianInfo.id }, result => { if (result.code == 200) { this.cont = "撤销录入成功"; this.$forceUpdate(); this.$refs.messageBox.open() } }) // dcloud_uniplugins 注册 { "type": "module", "name": "PanDianUtils", "class": "com.PDUtils" }

*?注意

使用前一定要注册SQLite 语句的大小写不敏感,但是使用Cursor(游标)获取数据时很敏感,一定要在创建的表中存在一样的字段execSQL(sql语句"",参数)里面的?代表占位符,有几个占位符就需要几个参数,参数对应的位置要保持一致每一个方法都需要加@JSMethod(uiThread = true),否则即使参数没有问题,也没法成功请求方法


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #浅入Android #uniapp #结合 #Android #Studio