Android sqlite 数据库操作

来源:互联网 发布:程序员面试问题及答案 编辑:程序博客网 时间:2024/04/30 12:36

我写了两个使用了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; // 数据库dbprivate 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

转载请注明出处,谢谢,如有疑问,留下评论!

1 0