android 半orm 數據庫框架(dileber數據庫框架)

android mvp框架:dileber(https://github.com/dileber/dileber.gitphp

今天主要介紹半orm數據庫框架~~我學習mybatis的寫法,寫了這套框架~~目前還在繼續完善中java

 
 
----------------------------------------------
今天主要是講dileber中集成的數據庫框架,我專門爲dileber編寫了一套數據庫框架~~固然會有一些bug~~但願使用這套數據庫框架的人幫我指出
 
在java web中目前使用比較火的是mybatis 個人這套框架會和mybatis有必定的類似~~
固然我主張寫sql的方式寫數據庫
 
廢話很少說:上乾貨
 
---------------------------------------------
 
 
固然我把文章羅列一下
 
 
 
 
 
 
 
在後期我會把數據庫自動生成代碼也放到框架自動生成代碼中
 
-------------------------------------------------
 
首先如何創建數據庫
 
dileber是一個能夠創建多數據庫多表的一個框架
 
String s = "CREATE TABLE user (_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,name TEXT,age INTEGER,info TEXT)";
list.add(s);
user = DBManager.getInstance().getDB("user",1,list);
getDB的參數是  數據庫名字,數據庫版本號,數據表建立語句
 
新建一個model(後期會有一套自動生成model工具,不須要再寫model)
 
user model(須要與數據庫建立語句相同)
 
package com.zhonghua.smailadd.LocalModel;

/**
 * Created by shidawei on 16/2/9.
 * CREATE TABLE user (_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,name TEXT,age INTEGER,info TEXT)
 */
public class User {

    Integer _id;

    String name;

    Integer age;

    String info;

    public Integer get_id() {
        return _id;
    }

    public void set_id(Integer _id) {
        this._id = _id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

}
 
 
新建一個mapper 數據映射的一個類
 
一共有5個註解
 
insert  update delete select  clazz
 
目前在 前三個註解提供了批量方法
 
這三個方法使用是相通的
 
單個insert的反回值比較特殊之外(long)其餘都爲int
 
long insert(Map<String,Object> map);
 
目前參數傳值只能傳兩種 後期會對實體類進行映射
 
Map<String,Object> map
List<Map<String,Object>> list
其中的值必需要保證名字的一致性
 
select註解已經把映射加上了
在返回值爲list的時候 須要在你的select上面加上你的映射類名
@Clazz("com.zhonghua.smailadd.LocalModel.User")
後期我會用掃描類名來簡化操做
 
 
package com.zhonghua.smailadd.db;

import com.zhonghua.dileber.data.db.annotation.Clazz;
import com.zhonghua.dileber.data.db.annotation.Insert;
import com.zhonghua.dileber.data.db.annotation.Select;
import com.zhonghua.smailadd.LocalModel.User;

import java.util.List;
import java.util.Map;

/**
 * Created by shidawei on 16/2/9.
 */
public interface UserMapper{

    @Insert("Insert into user(name,age,info) values (#{name},#{age},#{info})")
    long insert(Map<String,Object> map);


    @Insert("Insert into user(name,age,info) values (#{name},#{age},#{info})")
    int insert(List<Map<String,Object>> list);


    @Clazz("com.zhonghua.smailadd.LocalModel.User")
    @Select("select * from user")
    List<User> select();

    @Select("select * from user limit 1")
    User select2();


}
 
代碼中使用
你的數據庫建立最好放在 application中
public class SmailApplication extends SApplication{

    public static DBManager user;

    @Override
    public void onCreate() {
        super.onCreate();
       
        List<String> list = new ArrayList<String>();

     

        String s = "CREATE TABLE user (_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,name TEXT,age INTEGER,info TEXT)";
        list.add(s);
        user = DBManager.getInstance().getDB(Configer.DB_NAME,Configer.DB_VERSION,list);

        UserMapper userMapper = user.loadMapper(UserMapper.class);

        SLog.w("ddddddddd");
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("name", "22211");
        map.put("age", 51L);
        map.put("info", "111");
        List<Map<String,Object>> lisd = new ArrayList<Map<String, Object>>();
        lisd.add(map);
        userMapper.insert(lisd);

        User mm = userMapper.select2();
        SLog.i(mm.getInfo(),mm.getAge(),mm.getName());

        List<User> users = null;
        try {
           
            users = userMapper.select();
        } catch (Exception e) {
            e.printStackTrace();
        }

        for(int i =0;i<users.size(); i++) {
            SLog.i("sssssssss" , users.get(i).getName(),users.get(i).getInfo(),String.valueOf(users.get(i).getAge()));
        }

    }
}
 
如上就是如何使用該套 半orm數據庫框架
相關文章
相關標籤/搜索