SQLite 数据库表操作

作者 USER 创建于2010-08-05 07:56:00 修改者微软用户 修改于2010-08-05 07:56:00字数5362
文档摘要:数据库表增加删除修改查询根据SQLiteDatabase,SQLiteOpenHelper,ContentValues对数据库做增,删,改,查操作的公用代码.
关键词:
数据库表增加 删除 修改 查询 根据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; 第一个参数:数据库表名 第二个参数更新的内容 第三个参数更新的条件 第四个参数条件带?号的替代者 数据库创建: Java代码 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 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); } } 数据库增,删,改,查公共类: Java代码 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; } }