使用SQLiteDatabase操作SQLite数据库.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用SQLiteDatabase操作SQLite数据库

使用?SQLiteDatabase?操作?SQLite?数据库[java]?view plaincopy/*?Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。?execSQL()方法可以执行insert、delete、update和CREATE?TABLE之类有更改行为的SQL语句;?rawQuery()方法用于执行select语句。?execSQL()方法的使用例子:?SQLiteDatabase?db?=?....;?db.execSQL(insert?into?person(name,?age)?values(测试数据,?4));?db.close();?执行上面SQL语句会往person表中添加进一条记录,在实际应用中,?语句中的“测试数据”这些参数值会由用户输入界面提供,如果把用户输入的内容原样组拼到上面的insert语句,?当用户输入的内容含有单引号时,组拼出来的SQL语句就会存在语法错误。要解决这个问题需要对单引号进行转义,也就是把单引号转换成两个单引号。有些时候用户往往还会输入像“??”这些特殊SQL符号,为保证组拼好的SQL语句语法正确,必须对SQL语句中的这些特殊SQL符号都进行转义,显然,对每条SQL语句都做这样的处理工作是比较烦琐的。?SQLiteDatabase类提供了一个重载后的execSQL(String?sql,?Object[]?bindArgs)方法,使用这个方法可以解决前面提到的问题,因为这个方法支持使用占位符参数(?)。使用例子如下:?SQLiteDatabase?db?=?....;?db.execSQL(insert?into?person(name,?age)?values(?,?),?new?Object[]{测试数据,?4});??db.close();?execSQL(String?sql,?Object[]?bindArgs)方法的第一个参数为SQL语句,第二个参数为SQL语句中占位符参数的值,参数值在数组中的顺序要和占位符的位置对应。?*/???[java]?view plaincopypublic?class?DatabaseHelper?extends?SQLiteOpenHelper?{??????//类没有实例化,是不能用作父类构造器的参数,必须声明为静态???????????private?static?final?String?name?=?itcast;?//数据库名称???????????private?static?final?int?version?=?1;?//数据库版本???????????public?DatabaseHelper(Context?context)?{??//第三个参数CursorFactory指定在执行查询时获得一个游标实例的工厂类,设置为null,代表使用系统默认的工厂类??????????????????super(context,?name,?null,?version);???????????}??????????@Override?public?void?onCreate(SQLiteDatabase?db)?{????????????????db.execSQL(CREATE?TABLE?IF?NOT?EXISTS?person?(personid?integer?primary?key?autoincrement,?name?varchar(20),?age?INTEGER));??????????????}??????????@Override?public?void?onUpgrade(SQLiteDatabase?db,?int?oldVersion,?int?newVersion)?{?????????????????db.execSQL(?ALTER?TABLE?person?ADD?phone?VARCHAR(12)?NULL?);?//往表中增加一列??????//?DROP?TABLE?IF?EXISTS?person?删除表?????????}??}??//在实际项目开发中,当数据库表结构发生更新时,应该避免用户存放于数//据库中的数据丢失。??[java]?view plaincopy/*?Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数

文档评论(0)

haocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档