根据SQLiteDatabase,SQLiteOpenHelper,ContentValues对数据库做增,删,改,查操作的公用代码.
SQLiteDatabase:
insert(databaseHelper.DATABASE_TABLE, null, content);
第一参数:数据库表名
第二个参数如果CONTENT为空时则向表中插入一个NULL,
第三个参数为插入的内容
delete(databaseHelper.DATABASE_TABLE,KEY_ROWID +"="+rowId , null)>0;
第一参数:数据库表名,
第二个参数表示条件语句,
第三个参数为条件带?的替代值
返回值大于0表示删除成功
update(databaseHelper.DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
第一个参数:数据库表名
第二个参数更新的内容
第三个参数更新的条件
第四个参数条件带?号的替代者
数据库创建:
数据库增,删,改,查公共类:
SQLiteDatabase:
insert(databaseHelper.DATABASE_TABLE, null, content);
第一参数:数据库表名
第二个参数如果CONTENT为空时则向表中插入一个NULL,
第三个参数为插入的内容
delete(databaseHelper.DATABASE_TABLE,KEY_ROWID +"="+rowId , null)>0;
第一参数:数据库表名,
第二个参数表示条件语句,
第三个参数为条件带?的替代值
返回值大于0表示删除成功
update(databaseHelper.DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
第一个参数:数据库表名
第二个参数更新的内容
第三个参数更新的条件
第四个参数条件带?号的替代者
数据库创建:
- package us.imnet.iceskysl.db.notepad;
- import android.content.Context;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.database.sqlite.SQLiteDatabase.CursorFactory;
- /**
- * 创建数据库对象
- * @author xuzhenqin
- *
- */
- public class DatabaseHelper extends SQLiteOpenHelper {
- //数据库名称
- private final static String DATABASE_NAME = "notepad";
- //数据库版本号
- private final static int DATABASE_VERSION = 1;
- public static final String DATABASE_TABLE = "diary";
- //数据表创建SQL语句
- private static final String DATABASE_CREATE = "create table "+DATABASE_TABLE+" (_id integer primary key autoincrement, "
- + "title text not null, body text not null, created text not null);";
- public DatabaseHelper(Context context) {
- //调用父类构造方法创建数据库
- super(context, DATABASE_NAME, null, DATABASE_VERSION);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- //执行创建数据库SQL语句
- db.execSQL(DATABASE_CREATE);
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- //判断数据库是否存在
- db.execSQL("DROP TABLE IF EXISTS diary");
- onCreate(db);
- }
- }
数据库增,删,改,查公共类:
- package us.imnet.iceskysl.db.notepad;
- import java.util.Calendar;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.SQLException;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteException;
- /**
- * 数据库操作对象
- * @author xuzhenqin
- *
- */
- public class DiaryDbAdapter {
- public static final String KEY_TITLE = "title";
- public static final String KEY_BODY = "body";
- public static final String KEY_ROWID = "_id";
- public static final String KEY_CREATED = "created";
- private DatabaseHelper databaseHelper;
- private Context context;
- private SQLiteDatabase sqliteDatabase;
- public DiaryDbAdapter(Context context)
- {
- this.context = context;
- }
- /**
- * 打开数据库连接
- */
- public void open()
- {
- databaseHelper = new DatabaseHelper(context);
- try
- {
- sqliteDatabase = databaseHelper.getWritableDatabase();
- }catch(SQLiteException ex)
- {
- sqliteDatabase = databaseHelper.getReadableDatabase();
- }
- }
- /**
- * 关闭数据库连接
- */
- public void close()
- {
- sqliteDatabase.close();
- }
- /**
- * 向数据库表中插入一条数据
- * @param title 字段值
- * @param body 字段值
- */
- public long createDiary(String title, String body)
- {
- ContentValues content = new ContentValues();
- content.put(KEY_TITLE, title);
- content.put(KEY_BODY, body);
- Calendar calendar = Calendar.getInstance();
- String created = calendar.get(Calendar.YEAR) + "年"
- + calendar.get(Calendar.MONTH) + "月"
- + calendar.get(Calendar.DAY_OF_MONTH) + "日"
- + calendar.get(Calendar.HOUR_OF_DAY) + "时"
- + calendar.get(Calendar.MINUTE) + "分";
- content.put(KEY_CREATED, created);
- //content为插入表中的一条记录,类似与HASHMAP,是以键值对形式存储。
- //insert方法第一参数:数据库表名,第二个参数如果CONTENT为空时则向表中插入一个NULL,第三个参数为插入的内容
- return sqliteDatabase.insert(databaseHelper.DATABASE_TABLE, null, content);
- }
- /**
- * 删除表中符合条件的记录
- * @param rowId 删除条件
- * @return 是否删除成功
- */
- public boolean deleteDiary(long rowId)
- {
- //delete方法第一参数:数据库表名,第二个参数表示条件语句,第三个参数为条件带?的替代值
- //返回值大于0表示删除成功
- return sqliteDatabase.delete(databaseHelper.DATABASE_TABLE,KEY_ROWID +"="+rowId , null)>0;
- }
- /**
- * 查询全部表记录
- * @return 返回查询的全部表记录
- */
- public Cursor getAllNotes()
- {
- //查询表中满足条件的所有记录
- return sqliteDatabase.query(databaseHelper.DATABASE_TABLE, new String[] { KEY_ROWID, KEY_TITLE,
- KEY_BODY, KEY_CREATED }, null, null, null, null, null);
- }
- /**
- * 查询带条件的记录
- * @param rowId 条件值
- * @return 返回查询结果
- * @throws SQLException 查询时异常抛出
- */
- public Cursor getDiary(long rowId) throws SQLException {
- //查询表中条件值为rowId的记录
- Cursor mCursor =
- sqliteDatabase.query(true, databaseHelper.DATABASE_TABLE, new String[] { KEY_ROWID, KEY_TITLE,
- KEY_BODY, KEY_CREATED }, KEY_ROWID + "=" + rowId, null, null,
- null, null, null);
- //mCursor不等于null,将标识指向第一条记录
- if (mCursor != null) {
- mCursor.moveToFirst();
- }
- return mCursor;
- }
- /**
- * 更新数据库
- * @param rowId 行标识
- * @param title 内容
- * @param body 内容
- * @return 是否更新成功
- */
- public boolean updateDiary(long rowId, String title, String body) {
- ContentValues args = new ContentValues();
- args.put(KEY_TITLE, title);
- args.put(KEY_BODY, body);
- Calendar calendar = Calendar.getInstance();
- String created = calendar.get(Calendar.YEAR) + "年"
- + calendar.get(Calendar.MONTH) + "月"
- + calendar.get(Calendar.DAY_OF_MONTH) + "日"
- + calendar.get(Calendar.HOUR_OF_DAY) + "时"
- + calendar.get(Calendar.MINUTE) + "分";
- args.put(KEY_CREATED, created);
- //第一个参数:数据库表名,第二个参数更新的内容,第三个参数更新的条件,第四个参数条件带?号的替代者
- return sqliteDatabase.update(databaseHelper.DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
- }
- }