手记

android 半orm 数据库框架(dileber数据库框架)

今天我为大家介绍一款android mvp框架:dileber(https://github.com/dileber/dileber.git

----------------------------------------------
今天主要是讲dileber中集成的数据库框架,我专门为dileber编写了一套数据库框架~~当然会有一些bug~~希望使用这套数据库框架的人帮我指出

在java web中目前使用比较火的是mybatis 我的这套框架会和mybatis有一定的相似~~
当然我主张写sql的方式写数据库

废话不多说:上干货

---------------------------------------------
首先你需要知道dileber是个什么~~看我的博客就可以了http://blog.csdn.net/s297165331 大概有7篇文章

在后期我会把数据库自动生成代码也放到框架自动生成代码中

-------------------------------------------------

首先如何建立数据库

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数据库框架

2人推荐
随时随地看视频
慕课网APP