Android中的SQLite数据库
来源:互联网 发布:公司记账软件免费版 编辑:程序博客网 时间:2024/05/17 09:41
SQLite是一种轻量级的关系型数据库,它体积小,零配置,可以直接运行在应用程序的进程中,非常适合嵌入式的操作系统。
首先要创建一个SQLite数据库
通过类来实现SQLiteHelper这个抽象类,
public class PersonSqliteHelper extends SQLiteOpenHelper {
public PersonSqliteHelper(Context context) {super(context, "person.db", null, 1);}里面有四个参数分别是context,数据库名称,工厂,和版本
传的参数本来有四个,只需要保留一个就好了。
public void onCreate(SQLiteDatabase db) {db.execSQL("create table person (id integer primary key autoincrement,name varchar(20),number varchar(20))");}onCreate是数据库第一次被创建时调用的方法
这些还没有真正的创建数据库
PersonSqliteHelper p=new PersonSqliteHelper(this);p.getWritableDatabase();
这样才算创建了一个数据库。
有getReadableDatabase()和getWritableDatabase()两个方法可用。
下面通过一些常见的操作来演示一下SQLite的增删该查操作
private PersonSqliteHelper helper;// 在构造函数里完成helper的初始化public PersonDao(Context context) {helper = new PersonSqliteHelper(context);}
/*** 添加一条数据到数据库 * @param name 姓名 * @param number 电话号码 * @return 返回插入的数据的id * */private boolean find(String name) {SQLiteDatabase db = helper.getReadableDatabase();Cursor cursor = db.query("person", null, "name=?",new String[] { name }, null, null, null);boolean result = cursor.moveToNext();cursor.close();db.close();return result;}
在上面的代码中首先通过ContentValues创建了一个容器,然后通过put()方法将数据添加到ContentValues容器中,最后通insert()方法再分配到数据表中。
返回的值是新创建的一行的id.
查询数据
/** * 查询一条记录是否存在 * @param name 姓名 * @return true 存在 false 不存在 * */private boolean find(String name) {SQLiteDatabase db = helper.getReadableDatabase();Cursor cursor = db.query("person", null, "name=?",new String[] { name }, null, null, null);boolean result = cursor.moveToNext();cursor.close();db.close();return result;}
/** * 修改一条记录 * @param name 要修改信息的人的姓名 * @param newNumber 新的电话号码 * @return 返回受影响的记录的条数 * */private int updata(String name,String newNumber){SQLiteDatabase db=helper.getWritableDatabase();ContentValues values=new ContentValues();values.put("number", newNumber);int numbers=db.update("person", values, "name=?", new String[]{name});db.close();return numbers;}
删除数据
/** * 删除一条数据 * @param name 姓名 * */private int del(String name){SQLiteDatabase db=helper.getWritableDatabase();int number=db.delete("person", "name=?", new String[]{name});db.close();return number;}
/** * 返回全部的数据信息 * */public List<Person> findAll(){SQLiteDatabase db=helper.getReadableDatabase();List<Person> persons=new ArrayList<Person>();Cursor cursor=db.query("person", new String[]{"id","name","number"}, null, null, null, null, null);while (cursor.moveToNext()) {int id=cursor.getInt(cursor.getColumnIndex("id"));String name=cursor.getString(cursor.getColumnIndex("name"));String number=cursor.getString(cursor.getColumnIndex("number"));Person p=new Person(id, name, number);persons.add(p);}cursor.close();db.close();return persons;}}
数据库中的事物
所谓的事务处理就是保证操作的完整性,所有操作要么同时成功,要么同时失败。
在SQLite中,事物的使用方法如下:
1、首先通过beginTransation()开始一个事物。
2、通过setTransactionSuccessful()设置一个事物成功的标志。
3、如果调用了以上第二步则成功地提交了事物,结束事物,否则回滚事物。方法为endTransaction().
比如:
db.beginTransaction();try {......//其他部分语句体db.setTransactionSuccessful();}finally{db.endTransaction();}
0 0
- Android中的数据库SQLite
- Android中的SQLite数据库
- Android中的数据库SQLite
- android中的sqlite数据库
- Android中的SQLite 数据库
- Android中的SQLite数据库
- android中的sqlite数据库加密
- Android中的SQLite数据库存储
- android中的SQLite数据库存储
- android直接读取项目中的sqlite数据库
- android直接读取项目中的sqlite数据库
- android写入数据库、读取sqlite中的图片
- android直接读取项目中的sqlite数据库
- android直接读取项目中的sqlite数据库
- Android 中的SQLite数据库的使用
- 解决Android中的SQLite数据库并发访问
- Android中的SQLite数据库的简单使用
- Android中的数据库——SQLite
- 删除容器中元素时的迭代器失效问题
- 三星放大招 欲“逼死”苹果
- centos 英文系统中文显示
- Java程序中的有关问题 short s1=1; s1+=1;为什么编译不出错
- R学习笔记——wordcloud包制作词云图
- Android中的SQLite数据库
- Anagrams
- VB.NET 使用 OleDb 操作 Access 数据库(来自 MSDN)
- 第5周作业-字体设置
- SUMO仿真高级进阶系列一:利用OpenStreetMap生成地图
- MySQLAdmin的用法
- OpenMax IL: component 基础知识
- UINavigationController标题文字颜色
- struts2+spring集成