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
原创粉丝点击