Android数据库存储基本操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35189116/article/details/72673796
 
1.adb命令(把模拟器数据库导入系统盘符):
adb pull(空格) /data/data/com.qf.shujukudemo/databases/player.db(空格)
C:\player.db
2.增删改查:
public class ABHelper extends SQLiteOpenHelper {

public ABHelper(Context context) {
super(context,"player.db",null,1);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sqlcratetable = "CREATE TABLE info(_id integer primary key autoincrement,name text)";
db.execSQL(sqlcratetable);
}
/*
* 当数据库的版本发生变化时调用
*一般在该方法中进行表结构的更改
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
Log.d("ok","oldVersion: "+oldVersion+"; newVersion: "+newVersion);
//修改表结构,添加age字段
//alter table 表名 add 字段名 字段类型
String sql = "alter table info add sex text";
db.execSQL(sql);
}

}

public class MainActivity extends Activity {
private SQLiteDatabase db;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
//创建数据库 并创建一张数据表
getsQlitedatabase();
}

private void getsQlitedatabase() {
/*db = openOrCreateDatabase("player.db",MODE_PRIVATE,null);
String sqlcratetable = "CREATE TABLE info(_id integer primary key autoincrement,name text)";
db.execSQL(sqlcratetable);*/
ABHelper helper = new ABHelper(this);
db = helper.getReadableDatabase();
}
public void adds(View v){
String sqladd = "insert into info(name)values ('科比')";
db.execSQL(sqladd);
//-----------方式二:insert方法
//参数1:表名
//参数2:一般写成null
//参数3:Content key-value
ContentValues value = new ContentValues();
value.put("name", "詹姆斯");
db.insert("info",null,value);
}
public void deletes(View v){
String sqldelete = "delete from info where name = '科比'";
db.execSQL(sqldelete);
//-----------方式二:delete方法
//参数1:表名
//参数2:条件表达式 可以带? 作为占位符
//参数3:参数2中?的值,如果没有则写成null
db.delete("info","_id > ? and _id < ?",new String[]{"2","5"});
}
public void updates(View v){
String sqlupdate = "update info set name = '库里'where _id>5";
db.execSQL(sqlupdate);
//-----------方式二:update方法
//参数1:表名
//参数2:Content key-value
//参数3:条件表达式 可以带? 作为占位符
//参数4:参数2中?的值,如果没有则写成null
ContentValues values = new ContentValues();
values.put("name", "欧文");
db.update("info", values,"_id > ? and _id < ?",new String[]{"6","12"});
}
public void querys(View v){
//String sqlqry = "select * from info where _id < ?";
//Cursor cs = db.rawQuery(sqlqry, new String[]{"10"});
//-----------方式二:query方法
Cursor cs = db.query("info",null,"_id > ?",new String[]{"6"},null,null,null);
StringBuilder builder = new StringBuilder();
while(cs.moveToNext()){
int _id = cs.getInt(cs.getColumnIndex("_id"));
String name = cs.getString(cs.getColumnIndex("name"));
builder.append("_id=").append(_id).append("; name=").
append(name).append("\n");
}
tv.setText(builder.toString());
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
db.close();
}
}

猜你喜欢

转载自blog.csdn.net/qq_35189116/article/details/72673796