美文网首页
SQLite的使用

SQLite的使用

作者: 方可为友 | 来源:发表于2021-05-07 11:47 被阅读0次
  • 继承帮助类
public class DbHelper extends SQLiteOpenHelper {
    private static DbHelper dbHelper;

    public DbHelper(Context context) {
        super(context, "demo.db", null, 1);
    }

    public static DbHelper getInstance() {
        if (dbHelper == null) {
            synchronized (DbHelper.class) {
                if (dbHelper == null) {
                    //静态对象,所以建议使用application对象,防止内存泄漏
                    dbHelper = new DbHelper(DemoApplication.sContext);
                }
            }
        }
        return dbHelper;
    }

    public static SQLiteDatabase getSQLiteDatabase(){
        return getInstance().getReadableDatabase();
    }

    /**
     * 在这里创建数据库
     * @param db
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql="CREATE TABLE student (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,age INTEGER)";
        db.execSQL(sql);
    }

    /**
     * 更新版本时使用
     * @param db
     * @param oldVersion
     * @param newVersion
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

  • 布局


    image.png
  • 增删改查

public class MainActivity extends AppCompatActivity {
    String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    ///增
    public void add(View view) {
        ContentValues values = new ContentValues();
        values.put("name", "lisi");
        values.put("age", 13);
        long insert = DbHelper.getSQLiteDatabase().insert("student", null, values);
        if (insert != -1) {
            Log.e(TAG, "插入成功");
        } else {
            Log.e(TAG, "插入失败");
        }
    }

    ///删
    public void delete(View view) {

    }

    ///改
    public void update(View view) {
    }

    ///查
    public void query(View view) {
        /*
        table:表名称
        colums:列名称数组
        selection:条件子句,相当于where
        selectionArgs:条件语句的参数数组
        groupBy:分组
        having:分组条件
        orderBy:排序类
        limit:分页查询的限制
        Cursor:返回值,相当于结果集ResultSet
         */
        Cursor cursor = DbHelper.getSQLiteDatabase().query("student", null, null, null, null, null, null);

        while (cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndex("id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            int age = cursor.getInt(cursor.getColumnIndex("age"));
            Log.e(TAG, "查找结果:id:" + id + ",name:" + name + ",age:" + age);
        }

        cursor.close();
    }
}

调试数据库过程中,可以借助Database Inspector工具查看数据,View > Tool Windows > Database Inspector。

相关文章

网友评论

      本文标题:SQLite的使用

      本文链接:https://www.haomeiwen.com/subject/amysdltx.html