SQLite数据库对数据的基本操作(二)

public class MainActivity extends BaseActivity implements OnClickListener {
    private SQLiteDatabase sqLiteDatabase;
    private ContentValues values;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();


        MySqliteDataBase mySqliteDataBase = new MySqliteDataBase(this, 1);
        // 获取一个数据库的操作对象,对数据库进行操作(增删改查)
        sqLiteDatabase = mySqliteDataBase.getReadableDatabase();
    }


    // 设置控件的点击事件
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.add:

            String addName = getViewContent(addNameEditText);
            String addPrice = getViewContent(addPriceEditText);

            if (addName == null || addName.equals("") || addPrice.equals("")) {
                toast("您输入的商品名称和价格有误,请重新输入");
                return;
            }
            //方式一:
            /**
             * 第一个参数:sql语句
             * 第二个参数:占位符的值
             * */
            //sqLiteDatabase.execSQL("insert into good(name,price) values (?,?)", new Object[]{addName,addPrice});

            //方式二:
            /**
             * 参数一:表名
             * 参数二:通常设置为空
             * 参数三:需要插入的数据的集合
             * */
            values = new ContentValues();
            values.put("name", addName);//key要和表中的字段名称一样
            values.put("price", addPrice);
            sqLiteDatabase.insert("good", null, values);

            toast("商品添加成功!!!");
            break;
        case R.id.delete:
            String deleteid = getViewContent(deleteIdEditText);
            //方式一:
            //sqLiteDatabase.execSQL("delete from good where id = ?", new Object[]{deleteid});

            //方式二:
            /**
             * 参数一:表名
             * 参数二:删除的条件,通常写成 :"xx=?"
             * 参数三:删除的id
             * */
            sqLiteDatabase.delete("good", "id=?", new String[]{deleteid});
            toast("数据删除成功!!!");

            /**
             删除所有数据
            */
            //方式一执行sql语句
              db.execSQL("delete from good");
                方式二:调用delete方法
                //db.delete(good,null,null);
            break;
        case R.id.updata:
            String updateName = getViewContent(updataNameEditText);
            String updateId = getViewContent(updataIdEditText);
            //方式一:
            //sqLiteDatabase.execSQL("update good set name = ? where id = ?",new Object[]{updateName,updateId});

            //方式二:
            /**
             * 参数一:表名
             * 参数二:需要更新的数据的集合
             * 参数三:sql语句的条件字符串
             * 参数四:补全参数三中的占位符
             * */
            values = new ContentValues();
            values.put("name", updateName);
            sqLiteDatabase.update("good", values, "id=?", new String[]{updateId});
            toast("数据更新成功!!!");
            break;
        case R.id.find:
            //方式一:
            // Cursor cursor = sqLiteDatabase.rawQuery("select * from good",
            // null);
            // StringBuilder builder = new StringBuilder();
            // while (cursor.moveToNext()) {
            // String name = cursor.getString(cursor.getColumnIndex("name"));
            // String price = cursor.getString(cursor.getColumnIndex("price"));
            // String id = cursor.getString(cursor.getColumnIndex("id"));
            // builder.append(name + "," + price + "," + id + "\r\n" );
            // }
            // textView.setText(builder.toString());

            //方式二:
            /**
             * 参数一:表名
             * 参数二:查询的列数组(为null时,默认查找所有的列)
             * 参数三:查询条件(为null,则没有限制),预编译
             * 参数四:填充参数三中预编译的占位符
             * 参数五:
             * 参数六:
             * 参数七:
             * 参数八:
             * */
            List<Goods> listGoods = new ArrayList<Goods>();
            //查询单个数据
            //Cursor cursor = sqLiteDatabase.query("good", new String[]{"id","name","price"}, "id=?", new String[]{"63"}, null, null, null,null);

            //查找所有的数据
            Cursor cursor = sqLiteDatabase.query("good", null, null, null,null, null, null, null);
            StringBuilder builder = new StringBuilder();
            while (cursor.moveToNext()) {

                int id = cursor.getInt(cursor.getColumnIndex("id"));
                String name = cursor.getString(cursor.getColumnIndex("name"));
                String price = cursor.getString(cursor.getColumnIndex("price"));

                goods = new Goods();
                goods.setId(id);
                goods.setName(name);
                goods.setPrice(price);
                //将对象添加到集合中
                listGoods.add(goods);
            }

            for (Goods g : listGoods) {//类型   数据源新的名字  : 数据源
                builder.append(g + "\r\n");
            }

            textView.setText(builder.toString());


            break;

        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值