Android数据存储之SQLite简单用法

来源:互联网 发布:淘宝网上充话费 编辑:程序博客网 时间:2024/05/21 01:53

实现效果图如下:

activity_main.xml布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <Button        android:id="@+id/create"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="创建数据库" />    <Button        android:id="@+id/update"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="更新数据库" />    <Button        android:id="@+id/insert"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="插入数据" />    <Button        android:id="@+id/updatedata"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="更新数据" />    <Button        android:id="@+id/modify"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="修改数据" />    <Button        android:id="@+id/select"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="查询数据" />    <Button        android:id="@+id/delete"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="删除数据" /></LinearLayout>

DatabaseHelper辅助类代码:

import android.content.Context;import android.database.DatabaseErrorHandler;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;/** * SQLiteOpenHelper是SQLiteDatabase一个辅助类,这个类主要生成数据库,并对版本进行管理。 * getWritableDatabase()和getReadableDatabase()可以对数据库进行操作 */public class DatabaseHelper extends SQLiteOpenHelper {    private static final String TAG = "TestSQLite";    /**     * 必须有构造方法     *     * @param context 上下文     * @param name    数据库名称     * @param factory     * @param version 当前数据库版本     */    public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {        super(context, name, factory, version);    }    public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {        super(context, name, factory, version, errorHandler);    }    /**     * 当第一次创建数据库的时候,调用该方法     *     * @param db     */    @Override    public void onCreate(SQLiteDatabase db) {        //创建一张用户表,属性列为:id(主键并且自动增加)、name(学生姓名)、number(学号)        String sql = "create table user(_id integer primary key autoincrement,name text,number text)";        //输出数据库的日志        Log.i(TAG, "create Database-------------> ");        //execSQL函数用于执行SQL语句        db.execSQL(sql);    }    @Override    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {        //输出更新数据库的日志        Log.i(TAG, "update Database------------->");    }}

MainActivity代码:

import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends Activity {    private Button mCreateButton;    private Button mUpdateButton;    private Button mInsertButton;    private Button mUpdatedataButton;    private Button mModifyButton;    private Button mSelectButton;    private Button mDeleteButton;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();        setListener();    }    private void init() {        mCreateButton = (Button) findViewById(R.id.create);        mUpdateButton = (Button) findViewById(R.id.update);        mInsertButton = (Button) findViewById(R.id.insert);        mUpdatedataButton = (Button) findViewById(R.id.updatedata);        mModifyButton = (Button) findViewById(R.id.modify);        mSelectButton = (Button) findViewById(R.id.select);        mDeleteButton = (Button) findViewById(R.id.delete);    }    private void setListener() {        //创建数据库的方法        mCreateButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //创建一个DatabaseHelper对象                DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1);                //调用了DatabaseHelper的getWritableDatabase()或getReadableDatabase(),得到一个可读的SQLiteDatabase对象                SQLiteDatabase db = dbHelper.getReadableDatabase();            }        });        //更新数据库的方法        mUpdateButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                // 数据库版本的更新,由原来的1变为2                DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 2);                SQLiteDatabase db = dbHelper.getReadableDatabase();            }        });        //插入数据的方法        mInsertButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1);                //得到一个可写的数据库                SQLiteDatabase db = dbHelper.getWritableDatabase();                //生成ContentValues对象 //key:列名,value:想插入的值                ContentValues cv = new ContentValues();                //往ContentValues对象存放数据,键-值对模式                cv.put("id", 1);                cv.put("name", "zhangbiao");                cv.put("age", 27);                cv.put("sex", "male");                //调用insert方法,将数据插入数据库                // 第一个参数:表名称                // 第二个参数:SQl不允许一个空列,如果ContentValues是空的,那么这一列被明确的指明为NULL值                // 第三个参数:ContentValues对象                db.insert("user", null, cv);                //关闭数据库                db.close();            }        });        //更新数据的方法        mUpdatedataButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1);                //得到一个可写的数据库                SQLiteDatabase db = dbHelper.getWritableDatabase();                //生成ContentValues对象 //key:列名,value:想插入的值                ContentValues cv = new ContentValues();                //往ContentValues对象存放数据,键-值对模式                cv.put("id", 1);                cv.put("name", "zhangbiao");                cv.put("age", 27);                cv.put("sex", "male");                // 调用update方法                // 第一个参数String:表名                // 第二个参数ContentValues:ContentValues对象                // 第三个参数String:where字句,相当于sql语句where后面的语句,?号是占位符                // 第四个参数String[]:占位符的值                db.update("user", cv, "id=?", new String[]{"1"});                //关闭数据库                db.close();            }        });        //修改数据的方法        mModifyButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1);                //得到一个可写的数据库                SQLiteDatabase db = dbHelper.getWritableDatabase();                ContentValues cv = new ContentValues();                cv.put("sage", "23");                //where 子句 "?"是占位符号,对应后面的"1",                String whereClause = "id=?";                String[] whereArgs = {String.valueOf(1)};                //第一个参数String:要更新的表名                //第二个参数ContentValues:一个ContentValeus对象                //第三个参数String: 是where子句                db.update("user", cv, whereClause, whereArgs);            }        });        //查询数据的方法        mSelectButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1);                //得到一个可读的SQLiteDatabase对象                SQLiteDatabase db = dbHelper.getReadableDatabase();                // 调用SQLiteDatabase对象的query方法进行查询,返回一个Cursor对象:由数据库查询返回的结果集对象                // 第一个参数String:表名                // 第二个参数String[]:要查询的列名                // 第三个参数String:查询条件                // 第四个参数String[]:查询条件的参数                // 第五个参数String:对查询的结果进行分组                // 第六个参数String:对分组的结果进行限制                // 第七个参数String:对查询的结果进行排序                Cursor cursor = db.query("stu_table", new String[]{"id", "name", "age", "sex"}, "id=?", new String[]{"1"}, null, null, null);                while (cursor.moveToNext()) {                    String name = cursor.getString(cursor.getColumnIndex("name"));                    String age = cursor.getString(cursor.getColumnIndex("age"));                    String sex = cursor.getString(cursor.getColumnIndex("sex"));                    System.out.println("query------->" + "姓名:" + name + " " + "年龄:" + age + " " + "性别:" + sex);                }                //关闭数据库                db.close();            }        });                //删除数据的方法        mDeleteButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1);                //得到一个可写的数据库                SQLiteDatabase db = dbHelper.getWritableDatabase();                //调用SQLiteDatabase对象的delete方法进行删除操作                //第一个参数String:表名                //第二个参数String:条件语句                //第三个参数String[]:条件值                db.delete("user", "id=?", new String[]{"1"});            }        });    }}

0 0
原创粉丝点击