Android Sqlite数据库的操作,其中包含不重复添加数据
2016-08-12 11:32
609 查看
首先创建数据库
删除数据库,删除数据的按钮是在ListView里面,所以我在Adapter里写了一个接口回调,用来删除数据
public class MySqLite extends SQLiteOpenHelper { public MySqLite(Context context, String name, CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { super(context, name, factory, version, errorHandler); } public MySqLite(Context context) { super(context, "MySqLite", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table myshop(id varchar(20), num varchar(20),title varchar(200),yushu varchar(20),head varcha(200),qishu varchar(20))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }然后给数据库添加数据,其中的shopDataList是查询数据后,存放数据的ArrayList
private void addShop() { ContentValues contentValues = new ContentValues(); //判断数据库是否是空的,如果是空的直接添加数据,如果不是空的则需要判断数据库里是否已经存在这条数据 if (shopDataList.size() > 0) { for (int i = 0; i < shopDataList.size(); i++) { if (shopDataList.get(i).getId().equals(usid)) { // 当该数据库已经包含现在想添加的数据时,清空contentValues; contentValues.clear(); ToastUtil.getShortToastByString(GoodsDetailActivity.this, "该商品已在购物车里,请勿重复添加"); // 当该数据库已经包含现在想添加的数据时,跳出循环 return; } else { // contentValues 添加数据 contentValues.put("id", usid);// id contentValues.put("num", 1);// 数量 contentValues.put("title", goods_detail_info.getTitle());// 标题 contentValues.put("yushu", goods_detail_info.getShenyurenshu());// 余数 contentValues.put("head", AppConfig.SERVER_IMG + goods_detail_info.getThumb());// 头像 contentValues.put("qishu", goods_detail_info.getQishu());// 期数 ToastUtil.getShortToastByString(GoodsDetailActivity.this, "加入购物车成功"); } } // 把contentValues里的数据添加到数据库里 mDb.insert("myshop", null, contentValues); } else { contentValues.put("id", usid);// id contentValues.put("num", 1);// 数量 contentValues.put("title", goods_detail_info.getTitle());// 标题 contentValues.put("yushu", goods_detail_info.getShenyurenshu());// 余数 contentValues.put("head", AppConfig.SERVER_IMG + goods_detail_info.getThumb());// 头像 contentValues.put("qishu", goods_detail_info.getQishu());// 期数 // 把contentValues里的数据添加到数据库里 mDb.insert("myshop", null, contentValues); ToastUtil .getShortToastByString(GoodsDetailActivity.this, "加入购物车成功"); } }
删除数据库,删除数据的按钮是在ListView里面,所以我在Adapter里写了一个接口回调,用来删除数据
@Override public void onDelListener(String useId) { <span style="white-space:pre"> </span>//查询数据库 for (int i = 0; i < cursor.getCount(); i++) { // 根据cursor的长度来获取数据 cursor.moveToPosition(i); String id = cursor.getString(cursor.getColumnIndex("id")); if (useId.equals(id)) { //根据id删除数据库里的某条数据 mDb.delete("myshop", "id=?", new String[] { id }); ToastUtil.getShortToastByString(getActivity(), "删除成功"); } } }修改数据库,修改数据的按钮是在ListView里面,所以我在Adapter里写了一个接口回调,用来修改数据
public void onSubtractListener(String useId) { //查询数据库 for (int i = 0; i < cursor.getCount(); i++) { // 根据cursor的长度来获取数据 cursor.moveToPosition(i); String id = cursor.getString(cursor.getColumnIndex("id")); String num = cursor.getString(cursor.getColumnIndex("num")); if (useId.equals(id)) { int valueOf = Integer.valueOf(num); valueOf--; if (valueOf < 0) { //当商品数量为0时就不给修改数据 ToastUtil.getShortToastByString(getActivity(), "商品数量不能小于0"); } else { //把要修改的数据丢到contentValues里 ContentValues contentValues = new ContentValues(); contentValues.put("num", valueOf + ""); //根据id修改数据 mDb.update("myshop", contentValues, "id = ?", new String[] { id }); ToastUtil.getShortToastByString(getActivity(), "删除成功"); } } } }
相关文章推荐
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加检索操作(Retrieve)
- 【Android 开发】:数据存储之 SQLite 数据库操作(二)
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加数据(Create)
- android 数据库 SQLiteOpenHelper和ContentProvider学习笔记---添加数据及显示(一)
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加查询
- 【Android 开发】:数据存储之 SQLite 数据库操作(一)
- android系统内置数据库SQLite的建库、建表、添加、删除、修改、查询等基本操作
- 数据库操作语句写错,导致sqlite建表出现错误,查不到添加的数据,粗心导致
- Android SQLite数据库存储之添加数据
- 【Android 开发】:数据存储之 SQLite 数据库操作(一)
- 【Android 开发】:数据存储之 SQLite 数据库操作(三)
- Android 操作数据库Sqlite,数据写入到SD卡里面
- android 数据库 SQLiteOpenHelper和ContentProvider学习笔记---添加修改删除数据之联系人(二)
- android sqlite数据库操作
- Android中数据存储--采用SQLite存储数据及在SDCard中创建数据库
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- android SQLite数据库基本操作示例
- android 数据操作之SQLite
- android SQLite使用SQLiteOpenHelper类对数据库进行操作