}
布局效果如下:
(2)添加数据: public class MainActivity extends Activity { private Button button_createDB; private MyOpenHelper dbHelper; private SQLiteDatabase db; private final String TABLE_NAME="student"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button_createDB=(Button) findViewById(R.id.btn_createDB); //实例化MyOpenHelper dbHelper=new MyOpenHelper(MainActivity.this, "Person.db", null, 1); //创建数据库的方法 createDB(); } private void createDB() { // TODO Auto-generated method stub button_createDB.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { /** * 当调用getWritableDatabase()或getReadableDatabase()后,若该数据库不存在,则会执行MyOpenHelper中的 * onCreate()方法,创建数据库;若已存在数据库,则不再调用onCreate();也就是说,onCreate()只调用一次。 */ dbHelper.getWritableDatabase(); Toast.makeText(MainActivity.this, "数据库创建成功",Toast.LENGTH_LONG).show(); } }); } /** * 添加数据 * @param view */ public void insertData(View view){ db=dbHelper.getWritableDatabase(); /** * 添加数据和修改数据时,都会把数据放入ContentValues的实例中,根据键值对的形式进行操作,键是数据库中相应的字段名,值为要存储的数据 */ ContentValues values=new ContentValues(); values.put("name", "张三"); values.put("job", "班长"); values.put("age", 21); values.put("sex", "男"); db.insert(TABLE_NAME, null, values); //清空values,以便放入第二条数据 values.clear(); values.put("name", "小梅"); values.put("job", "团支部"); values.put("age", 21); values.put("sex", "女"); db.insert(TABLE_NAME, null, values); Toast.makeText(MainActivity.this, "添加成功", Toast.LENGTH_SHORT).show(); } }
截屏结果:
(3)修改数据: public void updateData(View v){ db=dbHelper.getWritableDatabase(); /** * 添加数据和修改数据时,都会把数据放入ContentValues的实例中,根据键值对的形式进行操作,键是数据库中相应的字段名,值为要存储的数据 */ ContentValues values=new ContentValues();
values.put("name", "新张三");
//参数:1.表名,2.contentValues值,3.限制条件,4.占位符
db.update(TABLE_NAME, values, "id=?", new String[]{String.valueOf(1)}); Toast.makeText(MainActivity.this, "修改成功", Toast.LENGTH_SHORT).show(); }截屏结果:
(4)删除数据: public void deleteData(View view){
db=dbHelper.getWritableDatabase();
//参数:1.表名,2.限制条件,3.占位符 db.delete(TABLE_NAME, "sex=?", new String[]{"女"});
db.delete(TABLE_NAME, "sex=?", new String[]{"女"}); Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show(); }截屏结果:
(5)查询数据: public void queryData(View view){ db=dbHelper.getReadableDatabase(); /** * 调用query()查询数据时,返回一个Cursor对象,对Cursor对象进行遍历,可得到每条数据各个字段的数据 * cursosr.getColumnIndex("sex"):根据字段名得到对应字段的列数; * cursosr.getString(int column):根据所在列数得到数据 */ Cursor cursosr=db.query(TABLE_NAME, null, null, null, null, null, null); while(cursosr.moveToNext()){ String name=cursosr.getString(cursosr.getColumnIndex("name")); String sex=cursosr.getString(cursosr.getColumnIndex("sex")); String age=cursosr.getString(cursosr.getColumnIndex("age")); String job=cursosr.getString(cursosr.getColumnIndex("job")); Log.i("TAG", name+","+sex+","+age+","+job); Toast.makeText(MainActivity.this, "查询成功", Toast.LENGTH_SHORT).show(); } }
截屏结果: