Android数据持久化之SQLite你所要知道的一切

2019-04-16  本文已影响0人  门心叼龙

本文为自己多年来在Android实战开发过程中总结归纳的一些常见问题,现在分享出来希望对初学者有所帮助。

本文出自门心叼龙的博客,转载请注明出处: https://blog.csdn.net/geduo_83/article/details/86559864

目录

[1. SQLite数据表都有哪些常见的数据类型?]
[2. 常见的增删改查语句?]
[3. 常见错误?]
[4. 数据库升级技巧?]
[5.SQLite使用时一般架构?]


1. SQLite数据表都有哪些常见的数据类型?

2. 常见的增删改查语句?

private TrackDBManager(Context context) {
     this(context, mDBName, null, VERSION);
}
image.gif

在onCreate方法里创建表

db.execSQL("create table track (vid varchar(64),trackid varchar(64),tracktime varchar(20),latl");
image.gif
String sq11 = "alter TABLE " + HIS_QUERY + " add lat varchar(64) DEFAULT '0'";
db.execSQL(sq11);
image.gif

带占位符用?代替,参数的值按照?的顺序放入Object数组即可,也可以?直接用参数值替换即可

 if(cursor.moveToNext()){
            StudentInfo info = new StudentInfo();
            info.setAge(cursor.getInt(0));
            info.setSex(cursor.getString(1));
            info.setWhichclass(cursor.getString(2));
            return info;
        }
cursor.close();  
image.gif

3. 常见错误?

4. 数据库升级技巧?

@Override
public void onCreate(SQLiteDatabase db) {
      db.execSQL(CREATE_QUERY_HIS);
      final int FIRST_DATABASE_VERSION = 1;
      onUpgrade(db, FIRST_DATABASE_VERSION, version);
}
image.gif
@Override
   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // 使用for实现跨版本升级数据库
      for (int i = oldVersion; i < newVersion; i++) {
         switch (i) {
            case 1:
               String sql = "alter TABLE " + HIS_QUERY + " add searchtype integer DEFAULT 0";
               db.execSQL(sql);
               break;
            case 2:
               String sql1 = "alter TABLE " + HIS_QUERY + " add addTime datetime";
               db.execSQL(sql1);
            default:
               break;
         }
}
image.gif

5.SQLite使用时一般架构?

架构1:

架构2:

image image.gif

上一篇 下一篇

猜你喜欢

热点阅读