• SQLite 数据库增删改查


    布局:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout
     3     xmlns:android="http://schemas.android.com/apk/res/android"
     4     xmlns:app="http://schemas.android.com/apk/res-auto"
     5     xmlns:tools="http://schemas.android.com/tools"
     6     android:layout_width="match_parent"
     7     android:layout_height="match_parent"
     8     android:orientation="vertical"
     9     tools:context="net.bwie.localdata.MainActivity">
    10 
    11     <Button
    12         android:id="@+id/insert_btn"
    13         android:layout_width="wrap_content"
    14         android:layout_height="wrap_content"
    15         android:text="插入"/>
    16 
    17     <Button
    18         android:id="@+id/delete_btn"
    19         android:layout_width="wrap_content"
    20         android:layout_height="wrap_content"
    21         android:text="删除"/>
    22 
    23     <Button
    24         android:id="@+id/update_btn"
    25         android:layout_width="wrap_content"
    26         android:layout_height="wrap_content"
    27         android:text="修改"/>
    28     <Button
    29         android:id="@+id/query_btn"
    30         android:layout_width="wrap_content"
    31         android:layout_height="wrap_content"
    32         android:text="查询"/>
    33 
    34 
    35 </LinearLayout>

    Activivy:

      1 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
      2 
      3     protected Button mInsertBtn;
      4     protected Button mDeleteBtn;
      5     protected Button mUpdateBtn;
      6     protected Button mQueryBtn;
      7     private DBHelper mHelper;
      8     private SQLiteDatabase mDatabase;
      9 
     10     @Override
     11     protected void onCreate(Bundle savedInstanceState) {
     12         super.onCreate(savedInstanceState);
     13         super.setContentView(R.layout.activity_main);
     14         initView();
     15 
     16         mHelper = new DBHelper(this);
     17         mDatabase = mHelper.getWritableDatabase();
     18     }
     19 
     20 
     21     private void initView() {
     22         mInsertBtn = (Button) findViewById(R.id.insert_btn);
     23         mInsertBtn.setOnClickListener(MainActivity.this);
     24         mDeleteBtn = (Button) findViewById(R.id.delete_btn);
     25         mDeleteBtn.setOnClickListener(MainActivity.this);
     26         mUpdateBtn = (Button) findViewById(R.id.update_btn);
     27         mUpdateBtn.setOnClickListener(MainActivity.this);
     28         mQueryBtn = (Button) findViewById(R.id.query_btn);
     29         mQueryBtn.setOnClickListener(MainActivity.this);
     30     }
     31 
     32     @Override
     33     public void onClick(View view) {
     34         if (view.getId() == R.id.insert_btn) {
     35             insertData();
     36         } else if (view.getId() == R.id.delete_btn) {
     37             deleteData();
     38         } else if (view.getId() == R.id.update_btn) {
     39             updateData();
     40         } else if (view.getId() == R.id.query_btn) {
     41             queryData();
     42         }
     43     }
     44 
     45     // 表名
     46     // null。数据库如果插入的数据为null,会引起数据库不稳定。为了防止崩溃,需要传入第二个参数要求的对象
     47     // 如果插入的数据不为null,没有必要传入第二个参数避免崩溃,所以为null
     48     // 插入的数据
     49     private void insertData() {
     50         ContentValues values = new ContentValues();
     51         values.put(DBHelper.NAME, "鹿晗");
     52         values.put(DBHelper.AGE, 17);
     53         mDatabase.insert(DBHelper.TABLE_NAME, null, values);
     54         Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show();
     55     }
     56 
     57     // 表名
     58     // 删除条件
     59     // 满足删除的值
     60     private void deleteData() {
     61         int count = mDatabase.delete(DBHelper.TABLE_NAME, DBHelper.NAME + " = ?", new String[]{"鹿晗"});
     62         Toast.makeText(this, "删除数量:"+count, Toast.LENGTH_SHORT).show();
     63     }
     64 
     65     // 表名
     66     // 修改后的数据
     67     // 修改条件
     68     // 满足修改的值
     69     private void updateData() {
     70         ContentValues values = new ContentValues();
     71         values.put(DBHelper.NAME, "小茗同学");
     72         values.put(DBHelper.AGE, 18);
     73         int count = mDatabase
     74                 .update(DBHelper.TABLE_NAME, values, DBHelper.NAME + " = ?", new String[]{"鹿晗"});
     75         Toast.makeText(this, "修改成功:" + count, Toast.LENGTH_SHORT).show();
     76     }
     77 
     78     // 表名
     79     // 查询字段
     80     // 查询条件
     81     // 满足查询的值
     82     // 分组
     83     // 分组筛选关键字
     84     // 排序
     85     private void queryData() {
     86         Cursor cursor = mDatabase.query(DBHelper.TABLE_NAME,
     87                 new String[]{DBHelper.NAME, DBHelper.AGE},
     88                 DBHelper.AGE + " > ?",
     89                 new String[]{"16"},
     90                 null,
     91                 null,
     92                 DBHelper.AGE + " desc");// 注意空格!
     93 
     94         int nameIndex = cursor.getColumnIndex(DBHelper.NAME);
     95         int ageIndex = cursor.getColumnIndex(DBHelper.AGE);
     96         while (cursor.moveToNext()) {
     97             String name = cursor.getString(nameIndex);
     98             String age = cursor.getString(ageIndex);
     99 
    100             Log.d("1507", "name: " + name + ", age: " + age);
    101         }
    102 
    103     }
    104 
    105 }

    创建数据库:

     1 public class DBHelper extends SQLiteOpenHelper {
     2 
     3     // 数据库文件名
     4     public static final String DB_NAME = "my_database.db";
     5     // 数据库表名
     6     public static final String TABLE_NAME = "t_person";
     7     // 数据库版本号
     8     public static final int DB_VERSION = 1;
     9 
    10     public static final String NAME = "name";
    11     public static final String AGE = "age";
    12 
    13     public DBHelper(Context context) {
    14         super(context, DB_NAME, null, DB_VERSION);
    15     }
    16 
    17     // 当数据库文件创建时,执行初始化操作,并且只执行一次
    18     @Override
    19     public void onCreate(SQLiteDatabase db) {
    20         // 建表
    21         String sql = "create table " +
    22                 TABLE_NAME +
    23                 "(_id integer primary key autoincrement, " +
    24                 NAME + " varchar, " +
    25                 AGE + " varchar"
    26                 + ")";
    27 
    28         db.execSQL(sql);
    29     }
    30 
    31     // 当数据库版本更新执行该方法
    32     @Override
    33     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    34 
    35     }
    36 }
  • 相关阅读:
    [Python 多线程] Concurrent (十五)
    [Python 多线程] GIL全局解释器锁 (十三)
    [Python 多线程] Semaphore、BounedeSemaphore (十二)
    自定义HandlerMethodArgumentResolver参数解析器和源码分析
    Dubbo分布式日志追踪
    kafka的分区分配策略
    深入剖析kafka架构内部原理
    kafka partition(分区)与 group
    Kafka消费组(consumer group)
    kafka存储机制以及offset
  • 原文地址:https://www.cnblogs.com/SongYongQian/p/7879579.html
Copyright © 2020-2023  润新知