1,下载地址:https://github.com/wyouflf/xUtils3
2,Eclipse使用时下载.arr后缀文件用zip解压后导入jar包和jni文件夹所有文件即可(如果需要源码请下载version-source.jar合并class.jar即可)
3,使用AndroidStudio使用时,需要配置下依赖:compile 'org.xutils:xutils:3.3.36'
在activity上边添加:@ContentView(R.layout.activity_main)
在onCreate()中添加:x.view().inject(this);
~2,UI控件注释的方法:
在变量上方添加:@ViewInject(R.id.<名称>)
~3,fragment注释方法:
在fragment上边添加:@ContentView(R.layout.fragment_view)
在onCreateView()中添加:x.view().inject(this,inflater,container);
~4,ViewHodler注释方法:
在getView中,if(convertView == null)时,填充convertView和建立ViewHolder对象后,x.view().inject(holder,convertView);
在Holder中,控件注解跟上边相同在声明控件的上方添加@ViewInject(R.id.<控件id>)
~5,事件注释方法(例如点击事件等):
#前提是响应事件的方法必须是private修饰,返回值、方法参数必须和普通书写相对应。
//点击事件默认type可以省略成(@Event(R.id.<控件id>))
在方法上添加@Event(type = 对应的事件.class(View.OnLongClickListener.class),value = R.id.<控件id>)
5,数据库操作:
//获取DbManager 第一步
~1,DbManager db = x.getDb(daoConfig); //需要传入参数daoConfig
//建立表,save可以保存一个对象也可以保存一个集合
~2,db.save(new Example("name","11(年龄)")); // db.save(List<Example> list);
//删除数据库
~3,db.dropDb();
//删除表
~4,db.dropTable(Example.class);
//查询表中第一行的数据
~5,Example e = db.findFirst(Example.class);
//按条件查询表中数据
~6,WhereBuilder wb = WhereBuilder.b(); -------查询辅助类
wb.and("age",">",22);
wb.and("age","<",25);--------------添加查询条件
db.selector(Example.class).where(wb).findAll(); ---------查询满足条件的所有对象返回的是一个计划List<Example> list;
//修改表中的一条数据
~7,Example e = db.findFirst(Example.class); //获取一条数据,这里以获取第一条数据举例
e.setName("更改这条数据中的名字选项");
e.setAge("更改年龄");
db.saveOrUpdate(e(操作的对象));
//删除表中的数据
~8,db.delete(Example.class);--------删除表中的所有数据
WhereBuilder wb = WhereBuilder.b();
wb.and();------添加条件
db.delete(Example.class,wb);-------删除表中满足条件的所有数据
6,在 5 中的辅助参数和实体类实现举例:
~1, /*
获取参数:daoConfig
.setDbName() ....设置数据库名称
.setTabCreateListener() ......设置表创建的一个监听
//.setAllowTransaction().....是否开启事物(默认开启true)
// .setDbDir().....设置数据库存放位置(例:new File("/mnt/sdcard/"))
.setDbOpenListener().....设置数据库打开的一个监听,在监听中输入:db.getDatabase().enableWriteAheadLogging();//开启数据库支持多线程操作提高性能
.setDbUpgradeListener().....设置数据库更新的一个监听
// .setDbVersion().....设置数据库版本号(默认为1)
*/
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig()
.setDbName("abc.db")
.setTabCreateListener()
.setDbUpgradeListerner()
.setDbOpenListener(new DbManager.DbOpenListener(){
public void onDbOpened(DbManager db){
db.getDatabase().enableWriteAheadLogging();
}
});
~2,实体类书写方法:
@Table(name = "表名称",onCreated="sql语句(默认为null,表示在表创建时就执行的语句)")
class Example{
@Column(name="id",isId = true,autoGen =true,property="NOT NULL") //name 数据库中属性名称,isId 是否是主键(默认为false),自增长,条件限制
private int id;
@Column(name = "c_name")
private String name;
@Column(name = "age")
private int age;
//空构造函数必须写否则创建库失败
example(){}
example(name,age){}
}
2,Eclipse使用时下载.arr后缀文件用zip解压后导入jar包和jni文件夹所有文件即可(如果需要源码请下载version-source.jar合并class.jar即可)
3,使用AndroidStudio使用时,需要配置下依赖:compile 'org.xutils:xutils:3.3.36'
4,注释:
******使用前提:先建立一个类继承Application类,重写onCreate()方法,在方法中x.Ext.init(this); 代码,并在Manifest中Application的name写上此类的全类名。
~1,activity注释方法:在activity上边添加:@ContentView(R.layout.activity_main)
在onCreate()中添加:x.view().inject(this);
~2,UI控件注释的方法:
在变量上方添加:@ViewInject(R.id.<名称>)
~3,fragment注释方法:
在fragment上边添加:@ContentView(R.layout.fragment_view)
在onCreateView()中添加:x.view().inject(this,inflater,container);
~4,ViewHodler注释方法:
在getView中,if(convertView == null)时,填充convertView和建立ViewHolder对象后,x.view().inject(holder,convertView);
在Holder中,控件注解跟上边相同在声明控件的上方添加@ViewInject(R.id.<控件id>)
~5,事件注释方法(例如点击事件等):
#前提是响应事件的方法必须是private修饰,返回值、方法参数必须和普通书写相对应。
//点击事件默认type可以省略成(@Event(R.id.<控件id>))
在方法上添加@Event(type = 对应的事件.class(View.OnLongClickListener.class),value = R.id.<控件id>)
5,数据库操作:
//获取DbManager 第一步
~1,DbManager db = x.getDb(daoConfig); //需要传入参数daoConfig
//建立表,save可以保存一个对象也可以保存一个集合
~2,db.save(new Example("name","11(年龄)")); // db.save(List<Example> list);
//删除数据库
~3,db.dropDb();
//删除表
~4,db.dropTable(Example.class);
//查询表中第一行的数据
~5,Example e = db.findFirst(Example.class);
//按条件查询表中数据
~6,WhereBuilder wb = WhereBuilder.b(); -------查询辅助类
wb.and("age",">",22);
wb.and("age","<",25);--------------添加查询条件
db.selector(Example.class).where(wb).findAll(); ---------查询满足条件的所有对象返回的是一个计划List<Example> list;
//修改表中的一条数据
~7,Example e = db.findFirst(Example.class); //获取一条数据,这里以获取第一条数据举例
e.setName("更改这条数据中的名字选项");
e.setAge("更改年龄");
db.saveOrUpdate(e(操作的对象));
//删除表中的数据
~8,db.delete(Example.class);--------删除表中的所有数据
WhereBuilder wb = WhereBuilder.b();
wb.and();------添加条件
db.delete(Example.class,wb);-------删除表中满足条件的所有数据
6,在 5 中的辅助参数和实体类实现举例:
~1, /*
获取参数:daoConfig
.setDbName() ....设置数据库名称
.setTabCreateListener() ......设置表创建的一个监听
//.setAllowTransaction().....是否开启事物(默认开启true)
// .setDbDir().....设置数据库存放位置(例:new File("/mnt/sdcard/"))
.setDbOpenListener().....设置数据库打开的一个监听,在监听中输入:db.getDatabase().enableWriteAheadLogging();//开启数据库支持多线程操作提高性能
.setDbUpgradeListener().....设置数据库更新的一个监听
// .setDbVersion().....设置数据库版本号(默认为1)
*/
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig()
.setDbName("abc.db")
.setTabCreateListener()
.setDbUpgradeListerner()
.setDbOpenListener(new DbManager.DbOpenListener(){
public void onDbOpened(DbManager db){
db.getDatabase().enableWriteAheadLogging();
}
});
~2,实体类书写方法:
@Table(name = "表名称",onCreated="sql语句(默认为null,表示在表创建时就执行的语句)")
class Example{
@Column(name="id",isId = true,autoGen =true,property="NOT NULL") //name 数据库中属性名称,isId 是否是主键(默认为false),自增长,条件限制
private int id;
@Column(name = "c_name")
private String name;
@Column(name = "age")
private int age;
//空构造函数必须写否则创建库失败
example(){}
example(name,age){}
}