1、SQLite数据库表操作 数据库表增加 删除 修改 查询 根据SQLiteDatabase,SQLiteOpenHelper,ContentValues对数据库做增,删,改,查操作的公用代码.SQLiteDatabase:insert(databaseHelper.DATABASE_TABLE, null, content);第一参数:数据库表名第二个参数如果CONTENT为空时则向表中插入一个NULL,第三个参数为插入的内容delete(databaseHelper.DATABASE_TABLE,KEY_ROWID +=+rowId , null)0;第一参数:数据库表名,第二个参数表示条件
2、语句,第三个参数为条件带?的替代值返回值大于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.s
3、qlite.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 Str
4、ing 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_NAM
5、E, null, DATABASE_VERSION);Overridepublic void onCreate(SQLiteDatabase db) /执行创建数据库SQL语句db.execSQL(DATABASE_CREATE);Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) /判断数据库是否存在db.execSQL(DROP TABLE IF EXISTS diary);onCreate(db);package us.imnet.iceskysl.db.notepad;impo
6、rt 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 DA
7、TABASE_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, creat
8、ed text not null);public DatabaseHelper(Context context) /调用父类构造方法创建数据库super(context, DATABASE_NAME, null, DATABASE_VERSION);Overridepublic void onCreate(SQLiteDatabase db) /执行创建数据库SQL语句db.execSQL(DATABASE_CREATE);Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) /判断数据
9、库是否存在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
10、.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 =
11、created;private DatabaseHelper databaseHelper;private Context context;private SQLiteDatabase sqliteDatabase;public DiaryDbAdapter(Context context)this.context = context;/* 打开数据库连接*/public void open()databaseHelper = new DatabaseHelper(context);trysqliteDatabase = databaseHelper.getWritableDatabase()
12、;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,
13、 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_CREATE
14、D, created);/content为插入表中的一条记录,类似与HASHMAP,是以键值对形式存储。/insert方法第一参数:数据库表名,第二个参数如果CONTENT为空时则向表中插入一个NULL,第三个参数为插入的内容return sqliteDatabase.insert(databaseHelper.DATABASE_TABLE, null, content);/* 删除表中符合条件的记录* param rowId 删除条件* return 是否删除成功*/public boolean deleteDiary(long rowId)/delete方法第一参数:数据库表名,第二个参数
15、表示条件语句,第三个参数为条件带?的替代值/返回值大于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_CR
16、EATED , 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,
17、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) ContentValu
18、es 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;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1