您的位置:首页 > 编程语言 > PHP开发

contentprovider总结(二)

2015-10-29 17:11 591 查看
在上节中创建完contentprovider之后,接下来我们创建数据库工具类,继承SQLiteOpenHelper.

那么SQLiteOpenHelper怎么用?什么是SQLiteOpenHelper.

SQLiteOpenHelper是一个创建和读取数据库的工具类。

下面举了个例子,用SQLiteOpenHelper操作一个数据表,简单的增删改查方法。但是我们真正的用SQLiteOpenHelper,contentprovider并不是这么用,这样用的话虽然可以对数据库进行增删改查,但是管理起来并不方便。

public class MainActivity extends Activity implements OnClickListener {

private DBHelper dbHelper;
private TextView tv_name;
private Button btn_add;
private Button btn_del;
private Button btn_query;
private Button btn_modify;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
// tv_name.setText(queryData(dbHelper));
}

private void initView() {
tv_name = (TextView) this.findViewById(R.id.tv_output);
btn_add = (Button) this.findViewById(R.id.btn_add);
btn_del = (Button) this.findViewById(R.id.btn_del);
btn_query = (Button) this.findViewById(R.id.btn_query);
btn_modify = (Button) this.findViewById(R.id.btn_modify);
btn_add.setOnClickListener(this);
btn_del.setOnClickListener(this);
btn_query.setOnClickListener(this);
btn_modify.setOnClickListener(this);
dbHelper = new DBHelper(this, "my.db", null, 1);
// insertData(dbHelper);
}

public void insertData(DBHelper dbHelper) {

// 获取数据库对象
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL("insert into student(id, name) values (1, 'nana')");
ContentValues values = new ContentValues();
values.put("id", 2);
values.put("name", "xiaoying");
db.insert("student", "id", values);
db.close();

}

public void updateData(DBHelper dbHelper) {

SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values2 = new ContentValues();
values2.put("name", "nana2");

db.update("student", values2, "name = 'nana'", null);

db.close();
}

public String queryData(DBHelper dbHelper) {
String result = "";
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("student", null, null, null, null, null, "id");

int idIndex = cursor.getColumnIndex("id");
int nameIndex = cursor.getColumnIndex("id");
for (cursor.moveToFirst(); !(cursor.isAfterLast()); cursor.moveToNext()) {
result = result + cursor.getString(nameIndex);
result = result + cursor.getInt(idIndex);
}
cursor.close();
db.close();
return result;
}

public String deleteData(DBHelper dbHelper) {
String result = "";
String[] args = { "nana" };
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete("student", "name = ?", args);
db.close();
return result;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

protected void onDestry() {
super.onDestroy();
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btn_add:
insertData(dbHelper);
break;
case R.id.btn_del:
deleteData(dbHelper);
break;
case R.id.btn_modify:
updateData(dbHelper);
break;
case R.id.btn_query:
tv_name.setText(queryData(dbHelper));
// queryData(dbHelper);
break;

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: