今天我为大家介绍一款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数据库框架