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,事务的使用;
四,工程目录结构截图:
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" />
好了,通过以上步骤基本可以实现单表的增删改查功能了
还是向之前一样,先介绍功能,再介绍所用知识点,然后贴下代码。
一,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" />
好了,通过以上步骤基本可以实现单表的增删改查功能了
相关文章推荐
- javaScript之实现基本的增删改查功能
- JS结合bootstrap实现基本的增删改查功能
- js + bootstrap 实现基本的增删改查功能 -- 兰
- JS结合bootstrap实现基本的增删改查功能
- mongoose创建数据结构,实现基本增删改查功能
- jsp开发学生信息管理系统,实现了基本的增删改查的功能
- 使用三层架构实现简单的MVC登陆操作!并实现基本的增删改查功能!!
- 纯手工打造C++单链表,实现增删改查等基本功能
- Android SQLite数据库基本操作和收藏功能的实现例子
- JavaScript之实现基本的增删改查功能
- sqlite之增删改查--简单的实现iOS收藏夹功能
- 编写一个通讯录,功能与以前的诺基亚手机一样,可以通过键盘进行箭头的移动,回车进入选项,用“W”键代表手机手机左键,“backspace”键代表返回上一级。能够实现基本的人性化的增删改查及文件的导入导出
- 基于Asterisk的VoIP开发指南——(1)实现基本呼叫功能
- ArcGIS.Server.9.3和ArcGIS API for JavaScript实现基本的地图功能(一)
- 我自己编的一个c语言小程序:银行基本功能的实现
- wince实现的基本功能
- 基于Asterisk的VoIP开发指南——(1)实现基本呼叫功能
- 学生信息记录系统,主要实现增删改查功能,考虑用堆栈、队列来写下
- WINCE实现的基本功能
- 基于Asterisk的VoIP开发指南——(1)实现基本呼叫功能