有很多人觉得我们在本地创建一个数据库,有点小题大做,但是个人感觉一个APP有时候还是有必要配一个数据库的,易于有效的管理数据,我写项目的时候用户基本的信息和APP的配置信息基本都是存储在本地数据库里,今天我们这里分享下直接写的SQLite的方法,另外有种比较简便的方式就是三方框架了 下面有分享的链接,有兴趣的小伙伴可以了解下
好用的三方框架GreenDao的使用点击查看
第一步. 创建MyOpenHelper 继承SQLiteOpenHelper
public class MyOpenHelper extends SQLiteOpenHelper {
//定义表
private String user = "create table User(id integer primary key autoincrement,"+ "name varchar(80)";
public MyOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
//执行SQL语句 创建表
db.execSQL(user);
}
//用于数据库更新
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch (oldVersion) {//用老版本的要往上走一级
case 1:
db.execSQL(user);
}
}
}
第二步. 创建DB操作工具类
public class MyDB {
private static MyDB chainDB;
private static SQLiteDatabase db;
private static Context mContext;
private static String tablename;
private MyDB(Context context) {
MyOpenHelper helper = new MyOpenHelper(context,"User.db", null, 1);
db = helper.getWritableDatabase();
mContext = context;
}
/**
* 增加
*/
public void saveUser(User user) {
if (user == null) {
return;
}
try {
ContentValues values = new ContentValues();
values.put("name", tz.getName);
db.insert("User", null, values);
} catch (Exception e) {
//添加失败
}
}
/**
* 查询所有
*/
public static List<User> getAllUser() {
List<User> list = new ArrayList<>();
Cursor cursor = db.rawQuery("select * from " + tablename, null);
while (cursor.moveToNext()) {
User user=User();
user.setId(cursor.getInt(cursor.getColumnIndex("id")));
user.setName(cursor.getString(cursor.getColumnIndex("name")));
list.add(user);
}
return list;
}
}
第二步. 初始化 调用
MyDB.getInstance(this);
MyDB.chainDB.getAllUser()
以上就是对SQLite的直接使用,这种操作有很多不便性就是SQL需要一个一个的去写,容易出错,不便于维护,安全性不太高,更多的还是建议大家使用三方的数据库框架,操作简单快捷