Android SQLLite 的基础操作

来源:互联网 发布:qq视频会议软件 编辑:程序博客网 时间:2024/05/17 04:03

用一个联系人管理APP练习SQLite的 增删改查

代码托管地址:

git@osc:http://git.oschina.net/Buynow96/ContacterManage;

核心代码:

继承SQLiteOpenHelper

public class MyOpenHelper extends SQLiteOpenHelper {    public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {        super(context, name, factory, version);    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL("CREATE TABLE contacter (_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),phone VARCHAR(20))");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    }}

数据库的插入:

/**     * 数据库的插入      * 将两个EditView(Name 和 Phone)中的数据添加到数据库中     * @param v     */    public void save (View v){        name=et_name.getText().toString();        phone=et_phone.getText().toString();        /***************************         **数据库的插入 insert         ***************************/        ContentValues cv=new ContentValues();        cv.put("name",name);        cv.put("phone",phone);        db.insert("contacter", "", cv);        Toast.makeText(InsertDataActivity.this,"添加成功",Toast.LENGTH_SHORT).show();    }

数据库的查询和删除:

 /**     * 显示从数据库读取的联系人结果 数据库Query     * 循环动态创建TextView     * 为每一条记录前添加一个删除按键 对数据库内数据delete     * 长按单条联系人记录进入修改 对数据库内数据Updata     * 短按单条联系人 转到虚拟按键 拨号或发送短信     *      */    public void disContacter() {        layout.removeAllViews();        /*********************************         *数据库的查询         *********************************/        Cursor cursor = db.query("contacter", new String[]{"name", "phone", "_id"}, null, null, null, null, "name");        int i = 1;        while (cursor.moveToNext()) {            final String name = cursor.getString(0);            final String phone = cursor.getString(1);            final String _id = cursor.getString(2);            TextView tv = new TextView(MainActivity.this);            tv.setText("          " + (i++) + "| " + name + "  " + phone);            LinearLayout layout1 = new LinearLayout(MainActivity.this);            layout1.setOrientation(LinearLayout.HORIZONTAL);            Button button = new Button(MainActivity.this);            button.setText("删除");            button.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                /*********************************                 *数据库的删除                 *********************************/                    db.delete("contacter", "_id=?",                            new String[]{_id});                    disContacter();                }            });            tv.setLongClickable(true);            tv.setOnLongClickListener(new View.OnLongClickListener() {                @Override                public boolean onLongClick(View v) {                    Intent intent = new Intent(MainActivity.this, UpdataDataActivity.class);                    intent.putExtra("name", name);                    intent.putExtra("phone", phone);                    intent.putExtra("_id", _id);                    startActivity(intent);                    return false;                }            });            tv.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phone));                    startActivity(intent);                }            });            layout1.addView(button);            layout1.addView(tv);            layout.addView(layout1);        }    }

数据库的升级:

public void save(View v){        ContentValues cv=new ContentValues();        cv.put("name",et_name.getText().toString());        cv.put("phone",et_phone.getText().toString());        db.update("contacter", cv, "_id=?", new String[]{_id});        Toast.makeText(UpdataDataActivity.this,"更改成功",Toast.LENGTH_SHORT).show();    }

APP截图:

添加联系人:

添加联系人

读取数据库的联系人数据:

读取数据库的联系人数据

升级联系人数据:

升级联系人数据

删除联系人数据:

删除联系人数据1
删除联系人数据2

1 0
原创粉丝点击