在android开发中只要涉及到数据存储,我想大部分人想到的是数据库,比起SharedPreferences和文件更加条理清晰,比起内容提供者更能能存储更多的数据,比起网络有简单了不少,并且网络需要流量,耗时又耗钱,但是传统的安卓数据库 ,在创建数据库,创建表和增删改查上代码很复杂,而且其中有些写sql语句的容易出错,对于初学者或许能得到锻炼,但是对于正在工作需要效率的人来说却是一大缺点,所幸android是开源的于是有许多开源框架横空出世,其中关于数据库的我觉得好用的一个框架便是litepal了。
首先我们先做准备工作首先我们在项目的libs包中放入:
再右键点击build Path再add build path 项目中会添加这个,就可以使用这个包了。
再创建个类继承DataSupport,类的内容主要是放表的列名:
public class News extends DataSupport{
private int id;
private String Key;
private String Title;
private String Type;
private String Story;
private String Rating;
private String Language;
private String RunningTime;
和get,set方法。
然后在项目的assets中创建litepal.xml文件,其中内容:
其中demo是数据库名,News是表名。
然后创建表在需要创建数据库的地方添加代码:
SQLiteDatabase db = Connector.getDatabase();
1.在表中添加数据:
首先创建一个继承了DataSupport的类的对象,通过对象调用set方法添加数据后,通过对象调用save()方法,比如:
News news=new News();
String topic=et_addtopic.getText().toString().trim();
news.setTopic(topic);
news.save();
2.在表中删除数据(这里我只说删除一条数据,至于为什么?因为我用的多):
删除数据更加简单,用DataSupport类调用delete方法即可其中delete方法有两个参数delete(数据库类.class,id(long类型的));
3.查询表中的全部数据:
DataSupport.findAll(数据库类.class);获取到一个List<数据库类>,然后通过for循环,用get方法来获取。
以上这些是网上都有的 比我的更加详细更加清晰,在此我画蛇添足说一个litepal中百度上没有提到的一个比较简单的地方:
那就是如何添加多张表,这个我查了百度有个《《Android数据库高手秘籍》》的 这个是介绍litepal最详细的,我没有发现我的问题如何解决,于是我摸索了下发现也比较简单:
创建第二张表我们还是创建个类继承DataSupport,再写列名参数,和set,get方法。然后在litepal.xml中修改和添加:
<dbname value="demo" ></dbname>
<version value="4" ></version>
<list>
<mapping class="com.example.selecttopic.db.News"></mapping>
<mapping class="com.example.selecttopic.db.News1"></mapping>
<mapping class="com.example.selecttopic.db.News2"></mapping>
<mapping class="com.example.selecttopic.db.News3"></mapping>
</list>
version这个参数后面的value一定要改,不改表不会添加进去。