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
Android -- Android JUint 与 Sqlite的更多相关文章
- 【转载】Android数据存储之SQLite
		SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎.它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行. 在Android中创建的SQLite数据库存储在:/d ... 
- android数据存储之Sqlite(二)
		SQLite学习笔记 前言:上一章我们介绍了sqlite的一些基本知识以及在dos命令下对sqlite进行的增删改查的操作,这一章我们将在android项目中实际来操作sqlite. 1. SQLit ... 
- Android数据存储之SQLite的操作
		Android作为一个应用在移动设备上的操作系统,自然也就少不了数据的存储.然而SQLite作为一个轻型的关系型数据库,基于其轻量.跨平台.多语言接口及安全性等诸多因数考虑,因而Android较大的数 ... 
- Android虚拟机中的sqlite数据库文件
		Android虚拟机中的sqlite数据库文件 ① 
- android 入门 006(sqlite增删改查)
		android 入门 006(sqlite增删改查) package cn.rfvip.feb_14_2_sqlite; import android.content.Context; import ... 
- android学习笔记48——SQLite
		SQLite SQLite试试一个嵌入式的数据库引擎,专门用于资源有限的设备(如手机.PDA)上适量数据存取. SQLite支持绝大部分SQL92语法,同样允许开发者使用SQL语句操作数据库中的数据, ... 
- Android学习-----如何使用sqlite对于后台数据交换,sqlite使用例程入门
		 SQLite 这是一个非常流行的嵌入式数据库.它支持 SQL 查询,和只使用很少的内存.Android 在集成实施 SQLite,所以每 Android 应用程序能够使用 SQLite 数据库. ... 
- 【Android 应用开发】Android 数据存储 之 SQLite数据库详解
		. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19028665 . SQLiteDataBase示例程序下 ... 
- android:Android中用文件初始化sqlite数据库(zz)
		很多时候在应用安装初始化时,需要创建本地数据库,同时为数据库添加数据,之后再从数据库中读取数据. 这里有2个思路 1.先在本地创建一个能支持android使用的sqlite数据库文件,启动时, ... 
随机推荐
- 洛谷P2812 校园网络[数据加强版] [Tarjan]
			题目传送门 校园网络 题目背景 浙江省的几所OI强校的神犇发明了一种人工智能,可以AC任何题目,所以他们决定建立一个网络来共享这个软件.但是由于他们脑力劳动过多导致全身无力身体被♂掏♂空,他们来找你帮 ... 
- 洛谷P2286 [HNOI2004]宠物收养所 [STL,平衡树]
			题目传送门 宠物收养所 题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的 ... 
- IntelliJ 、Pycharm、webstorm 2017 注册码及注册服务器
			jetbrains 家的东西都非常好看,但是价格贵的令人发指,所以我搭建了一个 Pycharm激活服务器,可以用来激活 Pycharm,IntelliJ IDEA,WebStorm.避免频繁更换激活码 ... 
- 初拾Java(问题二:缺类异常,无法编译)
			昨天,在看JSP页面包含的元素(JSP指令,生命,表达式,动作等)时,拷贝了一个别人的例子来在Myeclipse里运行,结果出现了如下的缺类错误: 多调试两次也会出现如下无法编译的错误: 具体代码如下 ... 
- 深度学习应用系列(四)| 使用 TFLite Android构建自己的图像识别App
			深度学习要想落地实践,一个少不了的路径即是朝着智能终端.嵌入式设备等方向发展.但终端设备没有GPU服务器那样的强大性能,那如何使得终端设备应用上深度学习呢? 所幸谷歌已经推出了TFMobile,去年又 ... 
- mycat数据库中间件入门
			首先从官网上下载mycat. 官网链接 下载对应的mycat即可. 我也是小白一个,就是直接在window上操作了. 自己画的,真low. 推荐一篇文章 https://blog.csdn.net/u ... 
- 【洛谷】P1196 [NOI2002]银河英雄传说【带权并查集】
			P1196 [NOI2002]银河英雄传说 题目描述 公元五八○一年,地球居民迁至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的 ... 
- ArrayList源码阅读----JDK1.8
			//定义一个默认的长度10 private static final int DEFAULT_CAPACITY = 10; //定义空的数组 private static final Object[] ... 
- Mac下配置Idea的Maven
			环境版本: Mac OS: 10.13.4 JDK: 1.8 Idea: 2018.3 Maven: 3.6.0 Maven 相关配置: Maven 下载: http://maven.apache.o ... 
- git fetch, git pull 以及 FETCH_HEAD
			git push. 这个很简单, 其实和后面的差不多, 这里就不讲了. 唯一需要注意的地方是: git push origin :branch2, 表示将一个内容为空的同名分支推送到远程的分支.(说白 ... 
