xutils数据库+gson解析假接口使用
来源:互联网 发布:android ant mac下载 编辑:程序博客网 时间:2024/05/17 03:20
xutils手动添加数据到本地数据库
JSON解析接口假数据自动添加到本地数据库,不需要手动添加数据
选择使用xutils框架的数据库模块创建android本地数据库,建立两张表Person和City,Person表中的数据是用for循环插入的,City表中的数据是解析本地json串添加进去的。
解析包是解析包,利用在线beJson自动生成实体类(12.28更 用studio里的GsonFormat生成,对于要将复杂的json串里的部分数据保存到数据库,则需要将那部分的实体类<即数据结构的实体类,既可以作为实体类又可以作为表结构类>建在外面,不要在整个大的gonnformat生成的类中,这样后续操作不方便),CityData同时也是表,承接接口解析的假数据利用数据库的保存方法存储到本地数据库
数据包是表(表)+操作表的工具类,应该有一个统一的操作类,或者在相应的活动中进行数据的增删改查
CityData
包com.example.zza_android_test2.parse;进口org.xutils.db.annotation.Column;进口org.xutils.db.annotation.Table;/ ** *既是实体类同时也创建了表,多了一个字段ID(主键自增长) * * @author huangjh * * /@Table(NAME =“CityData”)公共类CityData {@Column(NAME =“ID”,ISID = TRUE)私人诠释身份证;@Column(NAME =“省”)私人字符串省;@Column(NAME =“城市”)私人字符串的城市;@Column(NAME =“国”)私人字符串的国家;@Column(名称=“规范”)私人诠释代码;公共无效setProvince(字符串省){this.province =省份;}公共字符串getProvince(){返回this.province;}公共无效setCity(字符串市){this.city =城市;}公共字符串getCity(){返回this.city;}公共无效setCountry(字符串国家){this.country =国家;}公共字符串getCountry(){返回this.country;}公共无效setCode(INT代码){this.code =代码;}公众诠释引用代码(){返回this.code;}}
DatabaseOpenHelper
包com.example.zza_android_test2.database;进口android.annotation.SuppressLint;进口org.xutils.DbManager;进口org.xutils.x;公共类DatabaseOpenHelper {私人DbManager.DaoConfig daoConfig;私有静态DbManager分贝;私人最终字符串DB_NAME =“mydb.db”;私人最终诠释VERSION = 1;私人DatabaseOpenHelper(){daoConfig =新DbManager.DaoConfig()。setDbName(DB_NAME).setDbVersion(VERSION).setDbOpenListener(新DbManager.DbOpenListener(){@SuppressLint(“NewApi”)@覆盖公共无效onDbOpened(DbManager DB){。db.getDatabase()enableWriteAheadLogging();//开启WAL,对写入加速提升巨大(作者原话)}})。setDbUpgradeListener(新DbManager.DbUpgradeListener(){@覆盖公共无效onUpgrade(DbManager分贝,诠释oldVersion,INT静态网页){//数据库升级操作}});DB = x.getDb(daoConfig);}公共静态DbManager的getInstance(){如果(DB == NULL){DatabaseOpenHelper databaseOpenHelper =新DatabaseOpenHelper();}返回分贝;}}
SecondActivity主活动页
包com.example.zza_android_test2.activity;进口的java.util.List;进口android.app.Activity;进口android.os.Bundle;进口android.util.Log;进口android.view.View;进口android.view.View.OnClickListener;进口android.widget.Button;进口com.example.zza_android_test2.R;进口com.example.zza_android_test2.data.City;进口com.example.zza_android_test2.data.Dog;进口com.example.zza_android_test2.data.Person;进口com.example.zza_android_test2.data.operate.DbUtils;进口com.example.zza_android_test2.parse.CityBody;进口com.example.zza_android_test2.parse.CityData;进口com.example.zza_android_test2.parse.CityRoot;进口com.google.gson.Gson;/ ** *创建数据库 * * @author huangjh * * /公共类SecondActivity扩展活动实现OnClickListener {私人按钮BTN,BTN1,BTN2,btn3,btn4;DbUtils dbUtils;私人JSON字符串=“{\”成功\“:\”真正\“,”+“\”身体\“:{\”数据\“:[{\”省\“:\”江苏省\“,”+“\”城\“:\”连云港\“,\”国家\“:”+“\”灌云县\“,\”代码\“:222200},{”+“\”省\“:\”江苏省\“,”+“\”城\“:\”连云港\“,\”国家\“:”+“\”灌南县\“,\”代码\“:222200},{\”省\“:\”江苏省\“,”+“\”城\“:\”连云港\“,\”国家\“:”+“\”新浦区\“,\”代码\“:222200},{\”省\“:\”江苏省\“,”+“\”城\“:\”连云港\“,\”国家\“:”+“\”海州区\“,\”代码\“:222200},{\”省\“:\”江苏省\“,”+“\”城\“:\”连云港\“,\”国家\“:”+“\”东海县\“,\”代码\“:222200},{\”省\“:\”江苏省\“,”+“\”城\“:\”南京\“,\”国家\“:”+“\”浦口区\“,\”代码\“:222200}]},\”错误码\“:\” - 1 \“,\”MSG \“:\”成功\“}”;保护无效的onCreate(捆绑savedInstanceState){super.onCreate(savedInstanceState);的setContentView(R.layout.activity_second);BTN =(按钮)findViewById(R.id.btn);BTN1 =(按钮)findViewById(R.id.btn1);BTN2 =(按钮)findViewById(R.id.btn2);btn3 =(按钮)findViewById(R.id.btn3);btn4 =(按钮)findViewById(R.id.btn4);btn.setOnClickListener(本);btn1.setOnClickListener(本);btn2.setOnClickListener(本);btn3.setOnClickListener(本);btn4.setOnClickListener(本);dbUtils =新DbUtils();dbUtils.createTable(); //统一创建表Log.e(“JSON”,json.toString());}@覆盖公共无效的onClick(视图v){// TODO自动生成方法存根开关(v.getId()){案例R.id.btn://添加人表数据的for(int i = 0; I <50;我++){人PERSON1 =新的Person(“小龙虾”,20日,“男”,“南京”);人PERSON2 =新的Person(“大虾”,40,“男”,“南京”);dbUtils.insert(PERSON1,1);dbUtils.insert(PERSON2,1);}打破;案例R.id.btn3://查询dbUtils.query(Person.class,1);dbUtils.query(City.class,2);dbUtils.query(Person.class,3);打破;案例R.id.btn4://添加//接口解析添加citydata表数据GSON GSON =新GSON();CityRoot根= gson.fromJson(JSON,CityRoot.class);CityBody体= root.getBody();名单<CityData>的DataList = body.getData();Log.e(“DataList控件”,dataList.size()+“”);的for(int i = 0; I <dataList.size();我++){CityData数据= dataList.get(我); //已经解析出了详细的数据,直接添加到数据库dbUtils.insert(数据,4);}//添加城市表数据市city1 =新城区(“江苏”,“连云港”,“灌云”,222200);市城2 =新城区(“江苏”,“灌云”,“伊山”,222200);dbUtils.insert(city1,2);dbUtils.insert(城2,2);//添加狗表数据的for(int i = 0; I <20;我++){狗DOG1 =新的狗(“50”,2,“公”,“小黑”);狗DOG2 =新的狗(“50”,2,“母”,“小瘦”);dbUtils.insert(DOG1,3);dbUtils.insert(DOG2,3);}打破;默认:打破;}}}GSON直接使用了源代码,没有导入的jar包
下载地址
0 0
- xutils数据库+gson解析假接口使用
- ormlite框架数据库+gson解析假接口使用
- 网络请求(XUtils)+JSON解析(Gson)
- xutils和Gson解析Json数据
- xUtils获取json用gson解析json
- gson框架配合xUtils框架解析
- Gson解析json用到了2.6版本的xUtils
- xutils获取动态图片和进度条对话框gson解析字符串
- 使用Gson解析Json
- 使用Gson解析json
- 使用Gson解析json
- google-gson使用解析
- 使用Gson解析json
- 使用GSON解析json
- 使用Gson解析json
- 使用gson解析URL
- 使用Gson解析数据
- Gson解析使用详解
- jQuery 性能优化
- 在Android Studio中实现AIDL远程服务调用
- 《C++ Primer Plus(第六版)》(22)(第十二章 类和动态内存分配 笔记)
- 启动模式(LaunchMode)之singleInstance单一实例
- VIM 命令模式和输入模式
- xutils数据库+gson解析假接口使用
- 六个步骤,细说电商banner图设计之色彩的奥秘
- 在linux上使用git+github传文件到云服务器
- Android状态栏学习博客---供参考
- (十九)组合模式详解
- js ==与===区别(两个等号与三个等号)
- 曾国藩:凡读书,不必苦求强记
- Java:找水仙花数。。计算超出2^63-1的数的方案
- Eclipse 的Properties Editor插件