布局:
1 210 11 16 17 22 23 28 33 34 35
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 @Override19 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 @Override33 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {34 35 }36 }