android——sqlite实现面向对象crud -尊龙游戏旗舰厅官网
android中sqlite的使用,事实上倒也不难。可是与jdbc操作数据库相比,这个还是有点不顺手,并且我好久没写底层的封装了,使用ssm框架这些都不须要考虑......好了,废话不多说。以下直接建立一个測试project来试试sqlite在android中的应用吧。
1、新建一个project
2、配置junit測试环境
打开androidmanifest.xml文件,进行junit相关配置,详细例如以下图:
3、源代码
关于在android中怎样使用sqlite的文章非常多,我也是參考那些文章进行学习的。
作为一个j2ee方向的开发人员,我习惯于面向对象进行编程,而老罗的视频以及一些其它的教程关于crud操作使用的都是字符串,这我有点不适应,全部我在学习的过程中就改成了面向对象的crud操作。这样用着也方便点。原理、api什么的我就不说了。百度一下嗖嗖的都出来了,以下直接贴代码(完整project下载。点这里):
这样一个继承sqliteopenhelper的类主要就这么几个功能:
a.创建数据库和表
b.假设数据库有不同版本号那么就会更新数据库
c.调用的这个类的对象来取得数据库的读写权限
能够看到上面创建了一个叫test.db的数据库。当中有一个表person,表中有三个字段:主键-id。姓名-name,性别-sex。
以下生成这个表相应的实体类:
package com.example.pojo;public class person {private int id;private string name;private string sex;public int getid() {return id;}public void setid(int id) {this.id = id;}public string getname() {return name;}public void setname(string name) {this.name = name;}public string getsex() {return sex;}public void setsex(string sex) {this.sex = sex;}@overridepublic string tostring() {return "person [id=" id ", name=" name ", sex=" sex "]";}}我们要实现crud操作,那么建一个接口定义crud方法:
package com.example.dao;import com.example.pojo.person;public interface ipersondao {public boolean insert(person person);public boolean delete(int id);public boolean update(person person);public person select(int id); }以下要实现ipersondao接口。定义详细的业务方法:
package com.example.dao.impl;import android.content.context; import android.database.cursor; import android.database.sqlite.sqlitedatabase;import com.example.dao.ipersondao; import com.example.db.dbhelper; import com.example.pojo.person;public class persondaoimpl implements ipersondao {dbhelper helper = null;public persondaoimpl(context context){helper = new dbhelper(context);}@overridepublic boolean insert(person person) {boolean flag = false;sqlitedatabase database = null;try {string sql = "insert into person(name,sex) values (?,?)";database = helper.getwritabledatabase();database.execsql(sql, new object[]{person.getname(),person.getsex()});flag = true;} catch (exception e) {e.printstacktrace();}finally{if(database!=null){database.close();}}return flag;}@overridepublic boolean delete(int id) {boolean flag = false;sqlitedatabase database = null;try {string sql = "delete from person where id=?";database = helper.getwritabledatabase();database.execsql(sql, new object[]{integer.tostring(id)});flag = true;} catch (exception e) {e.printstacktrace();}finally{if(database!=null){database.close();}}return flag;}@overridepublic boolean update(person person) {boolean flag = false;sqlitedatabase database = null;try {string sql = "update person set name=? , sex=? where id=?";database = helper.getwritabledatabase();database.execsql(sql, new object[]{person.getname(),person.getsex(),person.getid()});flag = true;} catch (exception e) {e.printstacktrace();}finally{if(database!=null){database.close();}}return flag;}@overridepublic person select(int id) {person person = new person();sqlitedatabase database = null;try {string sql = "select * from person where id=?";database = helper.getreadabledatabase(); cursor cursor = database.rawquery(sql, new string[]{integer.tostring(id)});while(cursor.movetonext()){int _id = cursor.getint(cursor.getcolumnindex("id"));string _name = cursor.getstring(cursor.getcolumnindex("name"));string _sex = cursor.getstring(cursor.getcolumnindex("sex"));person.setid(_id);person.setname(_name);person.setsex(_sex);}} catch (exception e) {e.printstacktrace();}finally{if(database!=null){database.close();}}return person;}}以上完毕之后就能够開始单元測试了。绿色...... package com.example.test;import com.example.dao.ipersondao; import com.example.dao.impl.persondaoimpl; import com.example.pojo.person;import android.test.androidtestcase; import android.util.log;public class test extends androidtestcase {public void insertdb(){ipersondao persondao = new persondaoimpl(getcontext());person person = new person();person.setname("李四");person.setsex("男");persondao.insert(person);}public void selectdb(){ipersondao persondao = new persondaoimpl(getcontext());person person = persondao.select(1);log.i("info", person.tostring());}public void updatedb(){ipersondao persondao = new persondaoimpl(getcontext());person person = persondao.select(1);person.setname("改名字啦");person.setsex("不详");persondao.update(person);}public void deletedb(){ipersondao persondao = new persondaoimpl(getcontext());persondao.delete(2);}}
导出test.db文件。在sqlite expert中打开:
这是insert測试成功的样例。其它就不放图了,这个软件百度就能够下载了。
(转载注明出处:http://blog.csdn.net/zhshulin)
总结
以上是尊龙游戏旗舰厅官网为你收集整理的android——sqlite实现面向对象crud的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: java删除文件和目录
- 下一篇: