封装的数据库

终于有时间好好看看数据库了

今天下午自己封装了一个SQLite数据库

留着以后自己用吧

虽然还有许多要修改的地方

贴出代码先

package com.example.testdatabase;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseManager {
private DatabaseHelper dbHelper;
private static final String tableName = "student";
public DatabaseManager(Context context){
dbHelper = new DatabaseHelper(context);
}
public SQLiteDatabase getReadDatabase(){
return dbHelper.getReadableDatabase();
}
public void addData(String name, int num){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name", name);
cv.put("num", num);
try{
db.insertOrThrow(tableName, null, cv);
db.close();
}catch(Exception e){
e.printStackTrace();
}
}
public void deleteData(String strName){
SQLiteDatabase db = dbHelper.getWritableDatabase();
try{
db.delete(tableName, "name = ?", new String[]{strName});
db.close();
}catch(Exception e){
e.printStackTrace();
}
}
public void updateData(String strName, String strNum){
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", strName);
values.put("num", strNum);
db.update(tableName, values, "name = ?", new String[]{strName});
}
//查找指定数据
public Cursor findData(String strNum){
String sql = "select * from " + tableName + " where num = " + strNum;
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = null;
cursor = db.rawQuery(sql, new String[]{});
return cursor;
}
//删除表
public void deleteTable(){
String sql = "drop table " + tableName;
SQLiteDatabase db = dbHelper.getWritableDatabase();
try{
db.execSQL(sql);
}catch(Exception e){
e.printStackTrace();
}
}
public Cursor viewData(){
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql = "select * from " + tableName;
Cursor cursor = null;
try{
cursor = db.rawQuery(sql, new String[]{});
}catch(Exception e){
e.printStackTrace();
}
return cursor;
}
private class DatabaseHelper extends SQLiteOpenHelper{
private static final String dbNameString = "database.db";
private static final int db_version = 1;
private static final String nameTableString = "create table " + tableName + "(" + "name varchar(20) primary key," + "num int" + ");";
public DatabaseHelper(Context context) {
super(context, dbNameString, null, db_version);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL(nameTableString);
}
@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
}
}
}
调用demo
http://670176656.blog.51cto.com/user_index.php?action=addblog&job=modify&tid=1424745
package com.example.testdatabase;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.util.Log;
public class MainActivity extends Activity {
private Context mContext;
private DatabaseManager dm = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = this;
//在外部类中调用如下
//如添加数据
dm = new DatabaseManager(mContext);
Log.v("result", "++++++++++++增加5组数据+++++++++++++++++");
insertToTable();
queryTable();
Log.v("result", "++++++++++++删除名称为张三3的数据+++++++++++++++++");
deleteData();
queryTable();
Log.v("result", "++++++++++++把名称为张三2的号码改为10086+++++++++++++++++");
updateData();
queryTable();
}
private void insertToTable(){
for(int i=0; i<5; i++){
dm.addData("张三" + i, i * 10 + 1);
}
}
private void queryTable(){
Cursor mCursor = dm.viewData();
while(mCursor.moveToNext()){
Log.v("result", mCursor.getString(0) + " , " + mCursor.getString(1));
}
mCursor.close();
}
private void deleteData(){
dm.deleteData("张三3");
}
private void updateData(){
dm.updateData("张三2", "10086");
}
}

wKiom1QWjKeSiD-GAACs3G3I284651.pnghttp://670176656.blog.51cto.com/user_index.php?action=addblog&job=modify&tid=1424745

本文出自 “爬过山见过海” 博客,谢绝转载!

你可能感兴趣的:(数据库,database,封装)