码迷,mamicode.com
首页 > 移动开发 > 详细

Android数据库的运用

时间:2016-10-07 11:33:10      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

很简单的应用,所以我直接简单明了。

    android中数据库的运用:
   1.定义类继承SQLiteOpenHelper
 
ps:
  public class DBHelper extends SQLiteOpenHelper {
    public DBHelper(Context context) {
    super(context, DBInfo.DB.DB_NAME, null, DBInfo.DB.DB_VERSION);
  }
 @Override
//这个是数据库第一次创建的时候用
 public void onCreate(SQLiteDatabase db) {
  db.execSQL(DBInfo.Table.USER_INFO_CREATE);
 }
 @Override
//这个是数据库升级版本时候调用的方法
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  db.execSQL(DBInfo.Table.USER_INFO_DROP);
  onCreate(db);
 }
}
 
 
 
   当你完成了对数据库的操作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。
   下面是对数据库的增删改查(每种方法包括两种方法介绍:优点与缺点):
 
 
/**
  * 添加一条记录到数据库
  *
  * @param id
  * @param name
  */
//第一种方法
 public void add(String id, String name) {
//创建数据库,只有它执行,数据库才可以被创建  另外也可以用.getReadableDatabase();  
  SQLiteDatabase db = dbHelper.getWritableDatabase(); 
  // 不好之处:无返回值,无法判断是否插入成功
  db.execSQL("insert into user_table (userId,userName) values (?,?)",
    new Object[] { id, name });
  db.close();
 }
//第二种方法
 public long addAndroid(String id, String name) {
  SQLiteDatabase db = dbHelper.getWritableDatabase();
  ContentValues values = new ContentValues();
  values.put("userId", id);
  values.put("userName", name);
  // 好处:有返回值  但是当表多的时候查询就会麻烦
  long result = db.insert(Table.USER_INFO_TB_NAME, null, values);// 返回值是插入的是第几行,大于0代表添加成功
  db.close();
  return result;
 }
 
 
 
 /**
  * 查询某条记录是否存在
  *
  * @param name
  * @return
  */
 public boolean find(String name) {
  SQLiteDatabase db = dbHelper.getReadableDatabase();
  Cursor cursor = db.rawQuery(
    "select * from user_table where userName = ?",
    new String[] { name });
  boolean result = cursor.moveToNext();
  db.close();
  return result;
 }
 public boolean findAndroid(String name) {
  SQLiteDatabase db = dbHelper.getReadableDatabase();
  Cursor cursor = db.query(Table.USER_INFO_TB_NAME, null, "userName = ?",
    new String[] { name }, null, null, null);
  boolean result = cursor.moveToNext();// true代表查找到了//有许多的方法,可以看api文档介绍
  db.close();
  return result;
 }
 
 
 /**
  * 修改一条记录
  *
  * @param id
  * @param name
  */
 public void update(String id, String name) {
  SQLiteDatabase db = dbHelper.getWritableDatabase();
  // 缺点无返回值
  db.execSQL("update user_table set userName = ? where userId = ?",
    new Object[] { name, id });
  db.close();
 }
 public int updateAndroid(String id, String name) {
  SQLiteDatabase db = dbHelper.getWritableDatabase();
  ContentValues values = new ContentValues();//是一个map集合,谷歌封装好的 所有有key与value值。
  values.put("userName", name);
  // 返回值大于0代表修改更新成功
  int result = db.update(Table.USER_INFO_TB_NAME, values, "userId = ?",
    new String[] { id });
  db.close();
  return result;
 }
 
 
 /**
  * 删除一条记录
  *
  * @param name
  */
 public void delete(String name) {
  SQLiteDatabase db = dbHelper.getWritableDatabase();
  db.execSQL("delete from user_table where userName = ?",
    new String[] { name });
  db.close();
 }
 public int deleteAndroid(String name) {
  SQLiteDatabase db = dbHelper.getWritableDatabase();
  int result = db.delete(Table.USER_INFO_TB_NAME, "userName = ?",
    new String[] { name });// 返回值为受影响的行数,大于0代表成功
  db.close();
  return result;
 }

Android数据库的运用

标签:

原文地址:http://www.cnblogs.com/gaomeng666/p/5935585.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!