Android Sqlite数据库的使用

创建数据库

新建一个Android工程,再创建一个类MySqlLite继承SQLiteOpenHelper创建成功后,打开MysqlList.java文件,你会看到有报错。使用Alt+Enter键选择Implement Methods ,实现接口onCreateonUpgrade这时候依旧会报错,继续Alt+Enter选择 第一个,第一个 最终的代码如下
public class Mysql extends SQLiteOpenHelper {
    public Mysql(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {

    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

创建数据库和表

  private Context mycontext;
    public MySqlLite(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
        mycontext = context;
    }

    //数据库第一次调用时所用
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL("create table Person(" +
                "id integer primary key autoincrement," +
                "name varchar(20)," +
                "number varchar(20))"
                );
onCreate方法执行会在数据库第一次执行的时候创建,如果存在,之后就不会再创建,注意只要创建,修改代码也不会生效 在布局文件里添加
    <Button
        android:id="@+id/btn1"
        android:layout_width="120dp"
        android:layout_height="50dp"
        android:text="创建数据库" />
在MainActivity里添加
    sqlLite = new MySqlLite(this, "Person.db", null, 1);

        Button database = (Button) findViewById(R.id.btn1);
        database.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sqlLite.getWritableDatabase();
            }
        });
运行,点击后就会创建“Person.db”文件,可以用adb工具进行查看,如果提示Permission denied 可以用run-as进行权限的更改。具体方法不在详细说明

数据库的升级

//数据库更新
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
            sqLiteDatabase.execSQL("drop table if exists Person");
            sqLiteDatabase.execSQL("drop table if exists category");
            onCreate(sqLiteDatabase);
    }
在MainActivity里更改
sqlLite = new MySqlLite(this, "Person.db", null, 2);/*大于初始创建的数字即可*/

插入数据

//数据插入
    private void insertValue(MySqlLite sqlLite) {
        SQLiteDatabase db = sqlLite.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("name", "zhangsan");
        values.put("number", "100");
        db.insert("Person", null, values);
        values.clear();

        values.put("name", "lisi");
        values.put("number", "100");
        db.insert("Person", null, values);
        values.clear();

        values.put("category_name", "perpetual");
        values.put("category_code", 2);
        db.insert("category", null, values);
        values.clear();
        Toast.makeText(this, "插入数据成功", Toast.LENGTH_SHORT).show();

    }

// 数据更新 private void updateValue(MySqlLite mySqlLite) { SQLiteDatabase db = mySqlLite.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", "李四"); db.update("Person", values, "name=?", new String[]{"zhangsan"}); Toast.makeText(this, "更新数据成功", Toast.LENGTH_SHORT).show(); } //数据删除 private void deleteValue(MySqlLite mySqlLite) { SQLiteDatabase db = mySqlLite.getWritableDatabase(); db.delete("Person", "name=?", new String[]{"zhangsan"}); Toast.makeText(this, "删除数据成功", Toast.LENGTH_SHORT).show(); } // 数据查询 private void searchValue(MySqlLite mySqlLite) { SQLiteDatabase db = mySqlLite.getWritableDatabase(); Cursor cursor = db.query("Person", null, null, null, null, null, null); if (cursor.moveToFirst()) { do { String name = cursor.getString(cursor.getColumnIndex("name")); String number = cursor.getString(cursor.getColumnIndex("number")); Log.d("Info", name + " " + number); } while (cursor.moveToNext()); } cursor.close(); }


查看原文:http://blog.democpp.cn/2018/04/16/android-sqlite%e6%95%b0%e6%8d%ae%e5%ba%93%e7%9a%84%e4%bd%bf%e7%94%a8/
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liaoxianfu/article/details/79965700
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭