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

1.新建MySQLiteOpenHelper 类,继承SQLiteOpenHelper

/**
 * 创建类,继承SQLiteOpenHelper抽象类,重写方法
 * */
public class MySqliteDataBase extends SQLiteOpenHelper {

    /**
     * Context context, 
     * String name,数据库的名字,通常写成XXX.db
     * CursorFactory factory, 游标工厂,可以理解成是一个结果的集合,通常只能传null,系统会使用默认的游标工厂
     * int version:要创建的或者要打开的数据库的版本,注意,版本只能++,此操作是不可逆的
     * */
    public MySqliteDataBase(Context context,int version) {
        super(context, "goods.db", null, version);
    }

    /**
     * 数据库被创建时,回调此方法,在此方法中做创建表的操作
     * 
     * */
    public void onCreate(SQLiteDatabase db) {

    db.execSQL("create table good(id integer primary key autoincrement ,name varchar(20), price varchar(20))");
        Log.i("myTag", "数据库被创建时,onCreate方法被调用");

    }

    /**
     * 当数据库的版本发生变化时,会自动回调此方法 版本变化包括(升级表的结构,更新表的字段)
     * */
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

}

1.增

public class AddGoodsActivity extends BaseActivity implements OnClickListener {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_goods);
        initView();
        MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(
                AddGoodsActivity.this, 1);//参数1指的是数据库的版本号
                // 获取一个数据库的操作对象,对数据库进行操作(增删改查)
        db = mySQLiteOpenHelper.getReadableDatabase();

    }

    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.add_act_button1:
            ContentValues values = new ContentValues();
            String name = getViewContent(nameEdit);
            String price = getViewContent(priceEdit);
            String date = getViewContent(dateEdit);

             //key要和表中的字段名称一样
                values.put("name", name);
                values.put("price", price);
                values.put("date", date);
                /**
             * 参数一:表名
             * 参数二:通常设置为空
             * 参数三:需要插入的数据的集合
             * */
                db.insert("goods1", null, values);
                myToast("添加商品信息成功");

            break;
        }
    }
}

2.删

public class DeleteGoodsActivity extends BaseActivity implements
        OnClickListener {

    private SQLiteDatabase db;
    protected void onCreate(Bundle savedInstanceState) {    
    super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_delete_goods);
        MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(
                DeleteGoodsActivity.this, 1);
        db = mySQLiteOpenHelper.getReadableDatabase();
    }
    public void onClick(View v) {
        id = getViewContent(idEditText);
        if (v.getId() == R.id.delete_act_btn) {
        //根据id将数据删除
        /**
             * 参数一:表名
             * 参数二:删除的条件,通常写成 :"xx=?"
             * 参数三:删除的id
             * */
                db.delete("goods1", "id=?", new String[] { id });
                myToast("商品删除成功");
            }

        }

        }
    }

}

3.改

public class Update extends BaseActivity implements OnClickListener {
    private SQLiteDatabase db;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_update);
        MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(
                Update.this, 1);
        db = mySQLiteOpenHelper.getReadableDatabase();
    }

    public void onClick(View v) {
        if (v.getId() == R.id.update_act_button1) {
            String updeId = getViewContent(idEditText);
            String updateName = getViewContent(nameEditText);
            String updatePrice = getViewContent(priceEditText);
            String updateDate = getViewContent(dateEditText);

            ContentValues values = new ContentValues();
            //key值要和数据库中的字段名相对应
            values.put("id", updeId);
            values.put("name", updateName);
            values.put("price", updatePrice);
            values.put("date", updateDate);
            /**
             * 参数一:表名
             * 参数二:需要更新的数据的集合
             * 参数三:sql语句的条件字符串
             * 参数四:补全参数三中的占位符
             * */
            db.update("goods1", values, "id=?", new String[] { findId });
            myToast("商品信息修改成功");
        }
    }
}

4.查

public class UpdateGoodsActivity extends BaseActivity implements
        OnClickListener {

    private SQLiteDatabase db;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_update_goods);
        MySQLiteOpenHelper mySQLiteOpenHelper = new MySQLiteOpenHelper(
                UpdateGoodsActivity.this, 1);
        db = mySQLiteOpenHelper.getReadableDatabase();  
    }
    public void onClick(View v) {
        updateId = getViewContent(idEditText);
        if (v.getId() == R.id.update_act_btn) {
        //根据商品的id将数据查询出来
        /**
             * 参数一:表名
             * 参数二:查询的列数组(为null时,默认查找所有的列)
             * 参数三:查询条件(为null,则没有限制),预编译
             * 参数四:填充参数三中预编译的占位符
             * 参数五:
             * 参数六:
             * 参数七:
             * */
                Cursor cursor = db.query("goods1", null, "id=?",
                        new String[] { updateId }, null, null, null);
                        //根据id将该条数据的值依次取出
                while (cursor.moveToNext()) {
                    String id = cursor.getString(cursor.getColumnIndex("id"));
                    String name = cursor.getString(1);
                    String price = cursor.getString(2);
                    String date = cursor.getString(3);
                }
            }
        }
    }

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值