android sqlite 数据库 orm

来源:互联网 发布:日本犯罪推理知乎 编辑:程序博客网 时间:2024/05/01 07:36

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


    /**
     * ,默认构造器
     *
     * @param context
     */
    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();
//    }


    /**
     * 更新数据
     * @param columnName
     * @param value
     */
    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);
    }


    /**
     * 查询数据
     * @param id
     * @return
     */
    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);