SQLite数据库表操作.docx
《SQLite数据库表操作.docx》由会员分享,可在线阅读,更多相关《SQLite数据库表操作.docx(8页珍藏版)》请在冰豆网上搜索。
SQLite数据库表操作
数据库表增加删除修改查询
根据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代码
packageus.imnet.iceskysl.db.notepad;
importandroid.content.Context;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteOpenHelper;
importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
/**
*创建数据库对象
*@authorxuzhenqin
*
*/
publicclassDatabaseHelperextendsSQLiteOpenHelper{
//数据库名称
privatefinalstaticStringDATABASE_NAME="notepad";
//数据库版本号
privatefinalstaticintDATABASE_VERSION=1;
publicstaticfinalStringDATABASE_TABLE="diary";
//数据表创建SQL语句
privatestaticfinalStringDATABASE_CREATE="createtable"+DATABASE_TABLE+"(_idintegerprimarykeyautoincrement,"
+"titletextnotnull,bodytextnotnull,createdtextnotnull);";
publicDatabaseHelper(Contextcontext){
//调用父类构造方法创建数据库
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
publicvoidonCreate(SQLiteDatabasedb){
//执行创建数据库SQL语句
db.execSQL(DATABASE_CREATE);
}
@Override
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
//判断数据库是否存在
db.execSQL("DROPTABLEIFEXISTSdiary");
onCreate(db);
}
}
packageus.imnet.iceskysl.db.notepad;
importandroid.content.Context;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteOpenHelper;
importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
/**
*创建数据库对象
*@authorxuzhenqin
*
*/
publicclassDatabaseHelperextendsSQLiteOpenHelper{
//数据库名称
privatefinalstaticStringDATABASE_NAME="notepad";
//数据库版本号
privatefinalstaticintDATABASE_VERSION=1;
publicstaticfinalStringDATABASE_TABLE="diary";
//数据表创建SQL语句
privatestaticfinalStringDATABASE_CREATE="createtable"+DATABASE_TABLE+"(_idintegerprimarykeyautoincrement,"
+"titletextnotnull,bodytextnotnull,createdtextnotnull);";
publicDatabaseHelper(Contextcontext){
//调用父类构造方法创建数据库
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
publicvoidonCreate(SQLiteDatabasedb){
//执行创建数据库SQL语句
db.execSQL(DATABASE_CREATE);
}
@Override
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
//判断数据库是否存在
db.execSQL("DROPTABLEIFEXISTSdiary");
onCreate(db);
}
}
数据库增,删,改,查公共类:
Java代码
packageus.imnet.iceskysl.db.notepad;
importjava.util.Calendar;
importandroid.content.ContentValues;
importandroid.content.Context;
importandroid.database.Cursor;
importandroid.database.SQLException;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteException;
/**
*数据库操作对象
*@authorxuzhenqin
*
*/
publicclassDiaryDbAdapter{
publicstaticfinalStringKEY_TITLE="title";
publicstaticfinalStringKEY_BODY="body";
publicstaticfinalStringKEY_ROWID="_id";
publicstaticfinalStringKEY_CREATED="created";
privateDatabaseHelperdatabaseHelper;
privateContextcontext;
privateSQLiteDatabasesqliteDatabase;
publicDiaryDbAdapter(Contextcontext)
{
this.context=context;
}
/**
*打开数据库连接
*/
publicvoidopen()
{
databaseHelper=newDatabaseHelper(context);
try
{
sqliteDatabase=databaseHelper.getWritableDatabase();
}catch(SQLiteExceptionex)
{
sqliteDatabase=databaseHelper.getReadableDatabase();
}
}
/**
*关闭数据库连接
*/
publicvoidclose()
{
sqliteDatabase.close();
}
/**
*向数据库表中插入一条数据
*@paramtitle字段值
*@parambody字段值
*/
publiclongcreateDiary(Stringtitle,Stringbody)
{
ContentValuescontent=newContentValues();
content.put(KEY_TITLE,title);
content.put(KEY_BODY,body);
Calendarcalendar=Calendar.getInstance();
Stringcreated=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,第三个参数为插入的内容
returnsqliteDatabase.insert(databaseHelper.DATABASE_TABLE,null,content);
}
/**
*删除表中符合条件的记录
*@paramrowId删除条件
*@return是否删除成功
*/
publicbooleandeleteDiary(longrowId)
{
//delete方法第一参数:
数据库表名,第二个参数表示条件语句,第三个参数为条件带?
的替代值
//返回值大于0表示删除成功
returnsqliteDatabase.delete(databaseHelper.DATABASE_TABLE,KEY_ROWID+"="+rowId,null)>0;
}
/**
*查询全部表记录
*@return返回查询的全部表记录
*/
publicCursorgetAllNotes()
{
//查询表中满足条件的所有记录
returnsqliteDatabase.query(databaseHelper.DATABASE_TABLE,newString[]{KEY_ROWID,KEY_TITLE,
KEY_BODY,KEY_CREATED},null,null,null,null,null);
}
/**
*查询带条件的记录
*@paramrowId条件值
*@return返回查询结果
*@throwsSQLException查询时异常抛出
*/
publicCursorgetDiary(longrowId)throwsSQLException{
//查询表中条件值为rowId的记录
CursormCursor=
sqliteDatabase.query(true,databaseHelper.DATABASE_TABLE,newString[]{KEY_ROWID,KEY_TITLE,
KEY_BODY,KEY_CREATED},KEY_ROWID+"="+rowId,null,null,
null,null,null);
//mCursor不等于null,将标识指向第一条记录
if(mCursor!
=null){
mCursor.moveToFirst();
}
returnmCursor;
}
/**
*更新数据库
*@paramrowId行标识
*@paramtitle内容
*@parambody内容
*@return是否更新成功
*/
publicbooleanupdateDiary(longrowId,Stringtitle,Stringbody){
ContentValuesargs=newContentValues();
args.put(KEY_TITLE,title);
args.put(KEY_BODY,body);
Calendarcalendar=Calendar.getInstance();
Stringcreated=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);
//第一个参数:
数据库表名,第二个参数更新的内容,第三个参数更新的条件,第四个参数条件带?
号的替代者
returnsqliteDatabase.update(databaseHelper.DATABASE_TABLE,args,KEY_ROWID+"="+rowId,null)>0;
}
}