布局:
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 }