技术与热点应用 您所在的位置:电子展览网 > 行业资讯 > 技术与热点应用 > 手机设计与制造

Android 学习 数据库表增加 删除 修改 查询




关键词:

  根据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) {

第1页 第2页 第3页 第4页 第5页 

  根据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) {

第1页 第2页 第3页 第4页 第5页 

  接上页

  //执行创建数据库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;

第1页 第2页 第3页 第4页 第5页 

  接上页

  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) + "月"

第1页 第2页 第3页 第4页 第5页 

  接上页

  + 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();

第1页 第2页 第3页 第4页 第5页 

  接上页

  }

  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;

  }

  }

第1页 第2页 第3页 第4页 第5页 

分享到:
收藏 打印
相关新闻
  • 没有相关信息!