天天看點

android sqlite 資料庫 orm

---------------------------------------------------------------------------------------------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);