---------------------------------------------------------------------------------------------orm架構----------------------------------------------------------------------------------------------
使用教程:
一、首先下載下傳orm庫:http://download.csdn.net/detail/l827995939/9851910
二、建立資料庫和表
資料庫幫助類:
public class DBOpenHelper extends SQLiteOpenHelper {
// 資料庫名字
private static final String name = "RichMedia.db";
// 資料庫版本号
private static final int version = 14;
private static String Tag = DBOpenHelper.class.getSimpleName();
private static DBOpenHelper instance;
private DBOpenHelper(Context context) {
super(context, name, null, version);
}
private DBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
private DBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
}
public static DBOpenHelper getInstance(Context context) {
if (instance == null) {
instance = new DBOpenHelper(context);
}
return instance;
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.i(Tag, "-------------------create table-------------------");
//建立sql語句
String create_release = "create table release(id int, runtime int, node int, mqtt int)";
db.execSQL(create_release);
String add_release = "insert into release values(1, 0, 0, 0)";
db.execSQL(add_release);
String create_settings = "create table settings(id int, server_ip varchar(20), server_port varchar(10), server varchar(20))";
db.execSQL(create_settings);
String add_settings = "insert into settings values(1, \"0\", \"1883\", null)";
db.execSQL(add_settings);
// 螢幕橫豎屏記錄
String create_screen = "create table Screen(id integer primary key autoincrement, width varchar(20), height varchar(20), remark varchar(50))";
db.execSQL(create_screen);
Log.i(Tag, "-------------------create table success-------------------");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// String add_settings = " UPDATE settings SET server_ip =\"0\" where id = 1;";
// db.execSQL(add_settings);
// String add_release = "UPDATE release SET runtime = 0,node = 0,mqtt = 0 where id=1;";
// db.execSQL(add_release);
// 螢幕橫豎屏記錄
// String create_screen = "create table Screen(id integer primary key autoincrement, width varchar(20), height varchar(20), remark varchar(50))";
// db.execSQL(create_screen);
Log.i(Tag, "-------------------update success-------------------");
}
}
應用程式Application 建立:
public class MyApplication extends Application {
// 資料庫幫助類
private DBOpenHelper SqliteHelper;
@Override
public void onCreate() {
super.onCreate();
SqliteHelper = DBOpenHelper.getInstance(getApplicationContext());
SqliteHelper.getWritableDatabase();
//初始化配置資訊
//BlockCanary.install(this, new AppBlockCanaryContext());
}
}
三、建立資料實體類
@TableName("settings")
public class Settings {
@PrimaryKey(autoincrement = true)
@ColumnName("id")
private int Id;
@ColumnName("server_ip")
private String Server_ip;
@ColumnName("server_port")
private String Server_port;
@ColumnName("server")
private String Server;
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getServer_ip() {
return Server_ip;
}
public void setServer_ip(String server_ip) {
Server_ip = server_ip;
}
public String getServer_port() {
return Server_port;
}
public void setServer_port(String server_port) {
Server_port = server_port;
}
public String getServer() {
return Server;
}
public void setServer(String server) {
Server = server;
}
}
四、建立dao層類
public class SettingsDao extends DaoSupportImpl<Settings> implements IDaoSupport<Settings>{
private SQLiteDatabase db;
private Context context;
public SettingsDao(Context context, SQLiteDatabase db) {
super(db);
this.context = context;
this.db = db;
}
// public SettingsDao(Context context) {
// this.context = context;
// db = DBOpenHelper.getInstance(context).getWritableDatabase();
// }
public void Update(String columnName,String value){
ContentValues values = new ContentValues();
values.put(columnName, value);
String whereClause = "id=?";
String[] whereArgs = new String[] { String.valueOf(1) };
db.update("settings", values, whereClause, whereArgs);
}
public Cursor getCursor(int id){
String[] columns = new String[] { "id", "server_ip", "server_port", "server"};
String selection = "id = ?";
String[] selectionArgs = { String.valueOf(id) };
String groupBy = null;
String having = null;
String orderBy = null;
return db.query("settings", columns, selection,selectionArgs, groupBy, having, orderBy);
}
@Override
public int update(Settings settings) {
return super.update(settings);
}
@Override
public Settings find(Serializable id) {
return super.find(id);
}
// public String getUrl(){
// Cursor cursor = getCursor(1);
// String url = "";
// while (cursor.moveToNext()){
// url = cursor.getString(cursor.getColumnIndex("server_ip")).toString();
// break;
// }
// return url;
// }
}
五、程式中調用
private final SettingsDao dao = new SettingsDao(this, DBOpenHelper.getInstance(this).getWritableDatabase());
Settings settings = dao.find(0);