这篇日志是要跟我到做完这个任务为止!
太不容易了!
天啊,经历过这么多天终于有了些突破,曾经一直困扰在怎么将解析出来的json数组转化成对象存储起来在今天迎刃而解,只需要将person定义为一个数组,然后使用google的gson来解析此数组即可,即
ArrayList persons = new ArrayList<>;persons = Gson.fromjson(jtr,new TypeToken>(){}.getType());,
(注:jtr为从服务器上下载的json字符串。)
得到数组以后通过遍历的方法将数组内的对象存储到类里面去:
ContentValues cv = new ContentValues();ContentValues cv2 = new ContentValues(); Person person = new Person(); model mod = new model(); for (int i = 0;i
用以上的方法,将数组内的数据存储到Person类里面,再通过contentValue和db.insert分别存储到model和person两张表内。成功实现了add方法。
开始写第二个方法了
接下来要写的是删,可是由于外键还不知道怎么搞,实现了删除的方法,但是不能联动两张表一起删除。明天改进,删除的方法代码如下:
public void delete(Person person) { db.delete("person", "myid = ?", new String[]{String.valueOf(person.getMyid())});
通过识别person表里面的id列来删除。
第三个方法:查
今天听着歌,百着度写着代码,一不小心就完成了查的方法。真的是不简单啊。要感谢FADE这首歌啊,还有各种抖腿歌单,都亏他们才写出来T T。
查一直觉得很复杂,后来才发现其实就那样子。定义一个游标Cursor,相当于一个指针的东西。
Cursor c = db.rawQuery("SELECT * FROM Person WHERE myid=?", new String[]{String.valueOf(myid)});
用的是rawQuery方法,这是SQLite里面自带的的,推荐使用rawquery方法,不推荐使用query方法。
然后里面写的是关于查询的SQL语句。条件可以在主函数里面写出需要的条件,比如这里可以int myid = 1;
person1.name= c.getInt(c.getColumnIndex("name"));
然后根据myid = 1的条件查出 在Person表中myid=1的名字。以上就是查询的方法。明天要写的是改,通过人物名字来修改人物的属性。