如果说用命令行操作数据库太麻烦了,android为大家提供了一个
ContentValues可以操作数据库
增
ContentValues values=new ContentValues();
values.put("name","小明");
values.put("age",18);
values.put("address","长沙");
//第二个参数,如果values为空,要传入一个列名,我们给类名中传入一个null
//如果values不为空的时候,第二个参数没有意义,我们传入一个null就好
msqliteDatabase.insert("Student",null,values);
改
ContentValues contentValues=new ContentValues();
contentValues.put("age",20);
msqliteDatabase.update("Student",contentValues,"_id=?",new String[]{"7"});
小明变成了20岁
删
msqliteDatabase.delete("Student",new String[]{"7"});
小明就失踪了
public class MainActivity extends AppCompatActivity {
Button mButton,btn_updata,btn_delete;
sqliteDatabase msqliteDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第四个参数,版本号
MyOpenHelper myOpenHelper=new MyOpenHelper(getApplicationContext(),"mydb",null,1);
//两种获取数据库的方法
msqliteDatabase= myOpenHelper.getReadableDatabase();
// myOpenHelper.getWritableDatabase();
initView();
initClick();
}
private void initView() {
mButton=(Button)findViewById(R.id.btn_insert);
btn_updata=(Button)findViewById(R.id.btn_updata);
btn_delete=(Button)findViewById(R.id.btn_delete);
}
private void initClick() {
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
insertData();
}
});
btn_updata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
updateData();
}
});
btn_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deleteData();
}
});
}
/** * 删除数据 */
private void deleteData() {
// String deletesql="delete from Student Where _id = ?";
// Object[] objs=new Object[]{"3"};
// msqliteDatabase.execsql(deletesql,objs);
msqliteDatabase.delete("Student",new String[]{"7"});
}
/** * 修改数据 */
private void updateData() {
// String updatesql="update Student set name=?,age=? where _id=?";
// Object[] objs=new Object[]{"赵四",30,"1"};
// msqliteDatabase.execsql(updatesql,objs);
ContentValues contentValues=new ContentValues();
contentValues.put("age",new String[]{"7"});
}
/** * 插入数据 */
private void insertData() {
// String name="李四";
// int age =21;
// String address="北京";
// String insertsql="insert into Student(name,age,address)values('feng',20,'xian')";
// String insertsql="insert into Student(name,address)values('"+name+"',"+age+",'"+address+"')";
// msqliteDatabase.execsql(insertsql);
// String insertsql="insert into Student(name,address)values(?,?,?)";
// Object[]objs=new Object[]{"刘",18,"a"};
// msqliteDatabase.execsql(insertsql,objs);
ContentValues values=new ContentValues();
values.put("name","小明");
values.put("age",18);
values.put("address","长沙");
//第二个参数,如果values为空,要传入一个列名,我们给类名中传入一个null
//如果values不为空的时候,第二个参数没有意义,我们传入一个null就好
msqliteDatabase.insert("Student",values);
}
}