继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

android中数据库的介绍

米脂
关注TA
已关注
手记 492
粉丝 88
获赞 592


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

    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;

 } 

  在看数据库的时候不必用工具,还可以采用sqlite3的命令行来查询数据库。

  数据库中也有事物的介绍,详情看api。

原文链接:http://www.apkbus.com/blog-846519-61881.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP