Android(安卓)Sqlite数据库中基础的增删改查操作
16lz
2021-12-04
1.创建一个类MyUserlogDBHelper去继承SQLiteOpenHelper,在该类里面创建表。
package com.example.demo;import android.content.ContentValues;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import androidx.annotation.Nullable;public class MyUserlogDBHelper extends SQLiteOpenHelper { public MyUserlogDBHelper db; //对外提供参数,单例模式 private static SQLiteOpenHelper mHelper; public static synchronized SQLiteOpenHelper getInstance(Context context){ if (mHelper==null){ mHelper=new MyUserlogDBHelper(context,"user_log",null,1); } return mHelper; } private MyUserlogDBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { //创建表 String sql="create table user_log (_id integer primary key autoincrement,name text)"; //拿到db执行sql语句即可 db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}
2.在Activity中写查询,增加,修改,删除数据的操作。
package com.example.demo;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.os.Bundle;import android.util.Log;import android.view.View;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void create(View view) { SQLiteOpenHelper helper = MyUserlogDBHelper.getInstance(this); SQLiteDatabase readableDatabase = helper.getReadableDatabase(); } //查询语句 public void query(View view) { SQLiteOpenHelper instance = MyUserlogDBHelper.getInstance(this); SQLiteDatabase db = instance.getReadableDatabase(); if (db.isOpen()){ //查询语句 String sql="select * from user_log"; //获取游标 Cursor cursor = db.rawQuery(sql, null); while(cursor.moveToNext()){ //不规范的写法 /*int _id=cursor.getColumnIndex("0"); int name=cursor.getColumnIndex("1"); */ //规范的写法 int _id=cursor.getInt(cursor.getColumnIndex("_id")); String name=cursor.getString(cursor.getColumnIndex("name")); Log.d("数据库", "_id: "+_id+",name:"+name); } //关闭游标 cursor.close(); //关闭数据库 db.close(); } } //插入语句 public void insert(View view) { SQLiteOpenHelper instance = MyUserlogDBHelper.getInstance(this); SQLiteDatabase db = instance.getWritableDatabase(); //判断数据库是否开启 if (db.isOpen()){ String sql="insert into user_log(name) values('路宇')"; db.execSQL(sql); } db.close(); } //修改 public void update(View view) { SQLiteOpenHelper instance = MyUserlogDBHelper.getInstance(this); SQLiteDatabase db = instance.getWritableDatabase(); if (db.isOpen()){ String sql="update user_log set name=? where _id=?"; db.execSQL(sql,new Object[]{"成龙","5"}); } //关闭数据库 db.close(); } //删除数据 public void delete(View view) { SQLiteOpenHelper instance = MyUserlogDBHelper.getInstance(this); SQLiteDatabase db = instance.getWritableDatabase(); //判断数据是否是打开状态 if (db.isOpen()){ String sql="delete from user_log where _id=?"; db.execSQL(sql,new Object[]{6}); } }}
3.布局文件。
<?xml version="1.0" encoding="utf-8"?>
以上就是SQLite数据库中,最简单的增删改查操作,想深入学习SQLite在项目中的实际应用,请持续关注后面博文!
更多相关文章
- Android--通过关键字查找短消息数据库并将匹配的信息显示
- 【android工程转为lib工程后提示'R.id.xxx不能作为case语句的表
- android与html5的交互——数据库操作,UI操作,以及html5的localStor
- Android:使用JDBC链接MySQL数据库
- 【Android】SQLite使用
- Android数据库组件Room
- Android数据库操作的两种方式
- Android(安卓)studio 连接数据库小经历遇到的问题以及解决方法(ja
- android复制数据库到SD卡(网上搜集,未经验证)