后台说购物车要自己写,然后结算的时候在把数据传给他。真的是很想拿刀架在他脖子上,叫他再说一遍。
言归正传了。
greenDAO 优势
1、一个精简的库
2、性能最大化
3、内存开销最小化
4、易于使用的 APIs
5、对 Android 进行高度优化
GreenDao 3.0使用
GreenDao 3.0采用注解的方式来定义实体类,通过gradle插件生成相应的代码。
首先
一,在as中导入相关的包
我只导入这个
compile'org.greenrobot:greendao:3.0.1'
网上说还要导入 compile'org.greenrobot:greendao-generator:3.0.0'
我导入这个时候架包冲突。
所以我导入第一个,还是很愉快的在使用;
在build.gradle中进行配置:
buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.3.2' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'//加入这个 } }
在build.gradle中进行配置:
apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao' //加入这个
自定义路径
greendao { schemaVersion 1 daoPackage 'com.anye.greendao.gen' targetGenDir 'src/main/java' }
然后创建一个ShopGreenDao实体类
@Entity public class ShopGreenDao { @Id(autoincrement = true) private Long id; private String GoodsName;//商品名称 private int Num;//数量 private String price;//价格 private String ShopId;//店铺Id private String UserId;//用户名称 private String GoodsId;//商品id private String mType;//规格 private String ShopName; //店铺名称 private boolean isSeleck;//商品是否选中 private String isSelect;//选中的标识 private boolean isShopSelect;//店铺是否选择 private String ImgUrl;//图片 private int isFirst = 2;
}
Make Project一下
就能生成这三个文件
需要在Application注册
public class BaseApplication extends Application{ private DaoMaster.DevOpenHelper mHelper; private SQLiteDatabase db; private DaoMaster mDaoMaster; private DaoSession mDaoSession; private static DaoSession daoSession; public static BaseApplication instances; @Override public void onCreate() { super.onCreate(); //配置数据库 setupDatabase(); instances = this; } public static BaseApplication getInstances(){ return instances; } /** * 配置数据库 */ private void setupDatabase() { // 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。 // 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。 // 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。 // 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。 mHelper = new DaoMaster.DevOpenHelper(this, "notes-db", null); db = mHelper.getWritableDatabase(); // 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。 mDaoMaster = new DaoMaster(db); mDaoSession = mDaoMaster.newSession(); } public DaoSession getDaoSession() { return mDaoSession; } public SQLiteDatabase getDb() { return db; } }
shopGreenDao = BaseApp.getInstances().getDaoSession().getShopGreenDaoDao();//得到数据库
//插入数据
ShopGreenDao shopGreenDao = new ShopGreenDao();
shopGreenDao.setGoodsId(listBean.getId());
shopGreenDao.setPrice(listBean.getRebateprice() + "");
shopGreenDao.setGoodsName(listBean.getName());
shopGreenDao.setNum(1);
shopGreenDao.setShopId(mDatas.getShopInfo().getId());
shopGreenDao.setUserId(userid);
shopGreenDao.setShopName(mDatas.getShopInfo().getName());
shopGreenDao.setIsSeleck(false);
shopGreenDao.setImgUrl(listBean.getImageurl());
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mSave.size(); i++) {
sb.append(mSave.get(i));
sb.append(",");
}
shopGreenDao.setMType(sb.toString());
mShopGreenDao.insert(shopGreenDao);//插入数据
//查询 数据
List<ShopGreenDao> mList = shopGreenDao.queryBuilder().where(ShopGreenDaoDao.Properties.ShopId.eq(mShopId)).build().list();
//清空数据
shopGreenDao.deleteInTx(mList);
//修改数据
ShopGreenDao shopGreenDao = new ShopGreenDao(); shopGreenDao.setGoodsId(listBean.getId()); shopGreenDao.setPrice(listBean.getRebateprice() + ""); shopGreenDao.setGoodsName(listBean.getName()); shopGreenDao.setNum(1); shopGreenDao.setShopId(mDatas.getShopInfo().getId()); shopGreenDao.setUserId(userid); shopGreenDao.setShopName(mDatas.getShopInfo().getName()); shopGreenDao.setIsSeleck(false); shopGreenDao.setImgUrl(listBean.getImageurl()); StringBuffer sb = new StringBuffer(); for (int i = 0; i < mSave.size(); i++) { sb.append(mSave.get(i)); sb.append(","); } shopGreenDao.setMType(sb.toString());mShopGreenDao.update(user); //修改数据
//删除这条数据
ShopGreenDao shopGreenDao = new ShopGreenDao();
mShopGreenDao.delete(shopGreenDao);