Android -- Android JUint 与 Sqlite
创建一个数据库
public PersonSQLite(Context context) {
super(context, "person.db", null, 1);
// TODO 自动生成的构造函数存根
}
背景
这里以一个Person类来举例,Person类里面有成员变量,数据库的列也是这几项。
Person类
private int id;
private String name;
private String number;
SQL语句类
private PersonSQLite sqlite; public PersonDao2(Context context) {
sqlite = new PersonSQLite(context);
} public long add(String name ,String number)
{
SQLiteDatabase db = sqlite.getWritableDatabase();
//db.execSQL("insert into person (name,number) values (?,?)", new Object[]{name,number});
ContentValues values = new ContentValues();
values.put("name", name);
values.put("number", number);
long id = db.insert("person", null, values);
db.close();
return id;
} public boolean find(String name)
{
SQLiteDatabase db = sqlite.getReadableDatabase();
//Cursor cursor = db.rawQuery("select * from person where name=?", new String[]{name});
Cursor cursor = db.query("person", null,"name=?", new String[]{name}, null, null, null);
boolean result = cursor.moveToNext();
cursor.close();
db.close();
return result;
} public int update(String name , String newnumber)
{
SQLiteDatabase db = sqlite.getWritableDatabase();
//db.execSQL("update person set number=? where name =?",new Object[]{newnumber,name});
ContentValues values = new ContentValues();
values.put("number", newnumber);
int number = db.update("person", values, "name=?", new String[]{newnumber});
db.close();
return number;
} public int delete(String name)
{
SQLiteDatabase db = sqlite.getWritableDatabase();
//db.execSQL("delete from person where name = ?",new Object[]{name});
int number = db.delete("person", "name=?", new String[]{name});
db.close();
return number;
} public List<Person> findAll()
{
SQLiteDatabase db = sqlite.getReadableDatabase();
List<Person> persons = new ArrayList<Person>();
//Cursor cursor = db.rawQuery("select name,id,number from person",null);
Cursor cursor = db.query("person", new String[]{"name","id","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;
}
这些方法的作用通过名字可以理解的吧~~然后注释掉的语句是直接通过SQL语句写的,另外一种写法就是调用官方的网API。里面比如db.query,还有db.delete等。
测试类
public class testDB extends AndroidTestCase {
public void testCreateDB() throws Exception {
PersonSQLite sqlite = new PersonSQLite(getContext());
sqlite.getWritableDatabase(); } public void testAdd() throws Exception
{
PersonDao dao = new PersonDao(getContext());
dao.add("wangwu","123321");
} public void testFind()
{
PersonDao dao = new PersonDao(getContext());
boolean result = dao.find("wangwu");
assertEquals(true, result);
} public void testUpdate()
{
PersonDao dao = new PersonDao(getContext());
dao.update("wangwu", "122222222");
} public void testeDelete()
{
PersonDao dao = new PersonDao(getContext());
dao.delete("wangwu");
} public void testFindAll()
{
PersonDao dao = new PersonDao(getContext());
List<Person> persons = dao.findAll();
for(Person p : persons)
{
System.out.println(p.toString());
}
} }
测试权限
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.yuyidong.sqlite">
</instrumentation> <uses-library android:name="android.test.runner"/>
我是天王盖地虎的分割线
之前写过一个Sqlite的博客,但是没有这样测试着弄,是直接操作的,所以可能会有问题,这里再发一帖更正以前的错误。
源代码:http://pan.baidu.com/s/1dD1Qx01
SQLite1.zip
转载请注明出处:http://www.cnblogs.com/yydcdut
最新文章
- 安装vmall5:从ebak恢复数据,需要配置php.ini
- spring1冲刺感想与总结
- collectionView布局原理及瀑布流布局方式
- 一个小笔记(8):EN_2
- Java基础-面板组件
- 如何引用传递String Boolean 等,并改变他们的值
- SonarQube4.4+Jenkins进行代码检查实例之二
- 用JSTL简化Java Web开发
- javascript中对条件推断语句的优化
- [ACdream]女神教你字符串——违和感
- Git 用户名和邮箱
- 从 0 到 1 实现 React 系列 —— 1.JSX 和 Virtual DOM
- ZOOKEEPER典型应用场景解析
- Logstash安装和使用
- UWP 下载文件显示下载进度
- 团队Git使用教程
- Android井字游戏(二)游戏界面
- Spark案例分析
- Spring和Spring MVC包扫描
- 局域网Cesium离线影像及瓦片影像地图加载【转】
热门文章
- Django Suit v2-dev 使用
- 哈尔滨理工大学第七届程序设计竞赛初赛(高年级组)I - B-旅行
- export导出.xls时,在火狐的情况下出现表名乱码的情况的解决方案
- java面试题一
- Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机
- 安装与配置ironic
- [NC13C]形态形成场/[Gym100430B]Divisible Substrings
- [CodeForces-178F]Representative Sampling
- bzoj 2809: [Apio2012]dispatching -- 可并堆
- c# -- 解决FromsAuthentication上下文不存在