您的位置:首页 > 数据库

SQLite实现基本的增删改查功能

2015-04-10 00:52 357 查看
SQLite实现基本的增删改查功能

还是向之前一样,先介绍功能,再介绍所用知识点,然后贴下代码。

一,SQLite简介:
SQLite,是一款轻型的数据库,是遵守ACID(原子性、一致性、隔离性、持久性)的关联式数据库管理系统,多用于嵌入式开发中。

SQLite的数据类型:Typelessness(无类型), 可以保存任何类型的数据到你所想要保存的任何表的任何列中. 但它又支持常见的类型比如: NULL, VARCHAR, TEXT, INTEGER, BLOB, CLOB...等. 唯一的例外:integer primary key 此字段只能存储64位整数,数据库的主键只能为"_id",设为primary key时,会自增,从1开始,不需要再加auto_increment关键字

在Android系统,提供了一个SQLiteOpenHelper抽象类,该类用于对数据库版本进行管理.数据库帮助类,用户创建和管理数据库,该类中常用的方法:

onCreate 数据库创建时执行(第一次连接获取数据库对象时执行),初始化一些表;

onUpgrade 数据库更新时执行(版本号改变时执行),在执行添加表,删除表,修改表时可以在此方法中操作

onOpen 数据库每次打开时执行(每次打开数据库时调用,在 onCreate,onUpgrade方法之后)

数据库操作工具:
SQLiteHelper,SQLiteExpert,SQLite3

数据库一般操作步骤:
1,加载驱动;
2,连接数据库;
3,操作数据库
但是在android中,前两步骤省略了,andorid帮我做了

在第一次连接数据库用SQLiteOpenHelper调用getReaderDatabase()方法时创建数据库

为防止SQL注入,尽量不要把字符串拼接SQL

数据库存放路径:
/data/data/程序包名/databases/数据库名.db 下

数据库操作注意事项:
1,判断数据库是否打开,isOpen();
2,数据库使用完之后要关闭 close();
3, 查询方法:rawQuery();
4,插入方法:execSQL()

在android中,操作数据库有两种方式:
1,直接写SQL语句;
2,使用API提供的方法进行增删改查,相当于hibernate中的HQL;

数据库事务操作:
// 开启事务

db.beginTransaction();

// 标记事务成功

db.setTransactionSuccessful();

// 停止事务

db.endTransaction();

使用事务会加快执行速度

Cursor结果集的特点:
1,默认指定-1
moveToNext()
Cursor使用完之后需要关闭close(),不然会一直保存在内存中,出现内存溢出。

sqlite3的使用
命令:
1,adb shell 通过adb可以轻松的执行Linux Shell命令
2, cd /data/data/packageName/databases 进入databases 目录
3,sqlite3 test.db 进入sqlite3,操作test数据库

.tables :列出数据库中所有的表
exit:退出sqlite操作模式

二,主要功能:
  1,实现对student表的增删改查功能;

三,主要知识点:
  1,SQLiteOpenHelper抽象类的使用
  2,Cursor的使用;
  3,事务的使用;
四,工程目录结构截图:

public class DatabaseTest extends AndroidTestCase {

public static final String TAG = DatabaseTest.class.getSimpleName();

private DBManager dao ;

public void testInsert(){
Student student = new Student();
student.setName("冠希");
student.setAge(30);
student.setInfo("hhe");
dao = new DBManager(getContext());
boolean flag = dao.insert(student);
Assert.assertEquals(true, flag);
}
public void testDelete(){

dao = new DBManager(getContext());
boolean flag = dao.delete(1);
Assert.assertEquals(true, flag);
}
public void testUpdate(){
dao = new DBManager(getContext());
boolean flag = dao.update(1, "凤姐");
Assert.assertEquals(true, flag);
}

public void testQueryAll(){

dao = new DBManager(getContext());
List<Student> studentList= dao.queryAllStudent();
for (int i = 0; i < studentList.size(); i++) {
Log.i(TAG, studentList.get(i).toString());
}
}

public void testQueryId(){

dao = new DBManager(getContext());
Student student= dao.queryById(2);

Log.i(TAG, student.toString());

}

}


View Code
最后为了JUnit单元测试,需要在AndroidManifest.xml文件中配置一下信息:

在manifest节点下:
<instrumentation

android:name="android.test.InstrumentationTestRunner"

android:targetPackage="com.example.sqlitedemo" />

在application节点下配置下面信息:
<uses-library android:name="android.test.runner" />

好了,通过以上步骤基本可以实现单表的增删改查功能了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: