我写了两个使用了Android 自带数据库操作demo,这两个demo都是备忘录。
有一个代码封装很好,数据库相关操作写成一个数据库管理类MemoSqlDataManage。
下载地址:http://download.csdn.net/detail/qq_16064871/8444969
下面我贴一下主要的代码:
1、辅助数据库类MySQLiteUtil,继承SQLiteOpenHelper类。有两个方法。
//辅助数据库类
public class MySQLiteUtil extends SQLiteOpenHelper {
public MySQLiteUtil(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
String CREATE_TABLE_SQL = "create table user_tb(_id integer primary key autoincrement,subject,body,date)";
// 继承SQLiteOpenHelper类,要实现的方法,第一次安装会执行
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_SQL); // 在这个数据库,创建一张表
// 可以在这里一直创建表
}
// 继承SQLiteOpenHelper类,要实现的方法,第一次安装会执行
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
String oldVersion = null;
System.out.print("-----" + oldVersion + "-----");
}
}
2、数据库管理类MemoSqlDataManage,里面有数据库增删查改数据库语句。
//数据库管理类
public class MemoSqlDataManage {
private static MemoSqlDataManage m_MemoSqlDataManage = null;
private MySQLiteUtil mySQLiteUtil; // 辅助数据库
private SQLiteDatabase db; // 数据库db
private Context mContext;
// 单例模式
public static MemoSqlDataManage GetInstance(Context base) {
if (m_MemoSqlDataManage == null) {
m_MemoSqlDataManage = new MemoSqlDataManage(base);
}
return m_MemoSqlDataManage;
}
// 管理类初始化
public MemoSqlDataManage(Context base) {
// 打开或创建test.db数据库
mySQLiteUtil = new MySQLiteUtil(base, "memento.db", null, 1);
mContext = base;
db = mySQLiteUtil.getReadableDatabase();
}
/**
* 往数据库添加数据
*
* @param strsubject
* @param strbody
* @param strdate
* @return
*/
public boolean addSqlData(String strsubject, String strbody, String strdate) {
if (!strsubject.equals("")) {
db.execSQL("insert into user_tb values(null,?,?,?)", new String[] {
strsubject, strbody, strdate });
Toast.makeText(mContext, "添加备忘录成功", Toast.LENGTH_LONG).show();
return true;
} else {
Toast.makeText(mContext, "主题不能为空!", Toast.LENGTH_LONG).show();
}
return false;
}
/**
* 更新数据库
*
* @param strsubject
* @param strbody
* @param strdate
*/
public void update(int nid, String strbody) {
String strSQL = "update user_tb set body='" + strbody + "' where _id="
+ nid;
db.execSQL(strSQL);
Toast.makeText(mContext, "更新备忘录成功", Toast.LENGTH_LONG).show();
}
/**
* 删除数据
*
* @param nid
* @return
*/
public boolean deleteSqlData(int nid) {
boolean bdelete = false;
if (bdelete == false) {
String strSQL = "delete from user_tb where _id=" + nid;
db.execSQL(strSQL);
bdelete = true;
Toast.makeText(mContext, "删除备忘录成功", Toast.LENGTH_LONG).show();
}
return true;
}
// 查询数据库全部数据
public Cursor querySqlData() {
Cursor cursor = db.rawQuery("select * from user_tb", null); // 查询全部数据
return cursor;
}
// 根据条件查询数据库数据
public Cursor querySqlData(int nid) {
Cursor cursor = db.rawQuery("select * from user_tb where _id=" + nid,
null); // 查询全部数据
return cursor;
}
// 关闭数据库
public boolean closeSql() {
db.close();
return false;
}
}
3、这个页面是查询数据库所有数据,用listview显示。用了这个适配器SimpleCursorAdapter。这个适配器就是专门用来数据库数据适配的。
public class QureyDBActivity extends Activity {
private MemoSqlDataManage mSqlDataManage;
private ListView mlistView;
private SimpleCursorAdapter mSimpleCursorAdapter;
private Cursor mcursor;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qurey);
// 实例化MemoSqlDataManage数据库管理类
mSqlDataManage = MemoSqlDataManage.GetInstance(getApplicationContext());
mlistView = (ListView) findViewById(R.id.listView1);
setAdapter();
mlistView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
mcursor.moveToPosition(arg2);
int nid = mcursor.getInt(mcursor.getColumnIndex("_id"));
String strtheme = mcursor.getString(mcursor
.getColumnIndex("subject"));
String strbody = mcursor.getString(mcursor
.getColumnIndex("body"));
String strdate = mcursor.getString(mcursor
.getColumnIndex("date"));
Intent intent = new Intent();
intent.setClass(QureyDBActivity.this, UpdateDBActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("id", nid);
bundle.putString("theme", strtheme);
bundle.putString("body", strbody);
bundle.putString("date", strdate);
intent.putExtras(bundle);
startActivityForResult(intent, 4);
}
});
}
@SuppressWarnings("deprecation")
public void setAdapter() {
// SimpleCursorAdapter适配器是用于数据库
mcursor = mSqlDataManage.querySqlData();
if (mcursor.getCount() > 0) {
mcursor.moveToFirst();
mSimpleCursorAdapter = new SimpleCursorAdapter(this, R.layout.item,
mcursor, new String[] { "_id", "subject", "body", "date" },
new int[] { R.id.memento_id, R.id.memento_subject,
R.id.memento_body, R.id.memento_date });
mlistView.setAdapter(mSimpleCursorAdapter);
}
}
// 返回activity页面刷新
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
setAdapter();
}
}
}
如果要详细项目源码,免费下载网址如下:
http://download.csdn.net/detail/qq_16064871/8444969
转载请注明出处,谢谢,如有疑问,留下评论!