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/p/3790579.html,如需转载请自行联系原作者

相关文章
|
6月前
|
存储 数据库连接 数据库
Android数据存储:解释SQLite数据库在Android中的使用。
Android数据存储:解释SQLite数据库在Android中的使用。
84 0
|
5月前
|
数据库 Android开发 数据安全/隐私保护
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
237 2
|
5月前
|
SQL 存储 数据库
48. 【Android教程】数据库:SQLite 的使用
48. 【Android教程】数据库:SQLite 的使用
77 1
|
5月前
|
存储 缓存 数据库
Android之SQLite数据库使用详解
Android之SQLite数据库使用详解
|
5月前
|
存储 数据库 Android开发
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
177 0
|
API 数据库 Android开发
Android 中SQLite数据库的使用详解
Android 中SQLite数据库的使用详解
101 0
|
6月前
|
XML 数据库 数据安全/隐私保护
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
77 0
|
6月前
|
SQL 数据库 数据安全/隐私保护
Android Studio App开发中数据库SQLite的解析及实战使用(包括创建数据库,增删改查,记住密码等 附源码必看)
Android Studio App开发中数据库SQLite的解析及实战使用(包括创建数据库,增删改查,记住密码等 附源码必看)
479 0
|
Shell 数据库 开发工具
(超详细)android中SqLite数据库的使用(一文包懂包会)
(超详细)android中SqLite数据库的使用(一文包懂包会)
310 0
|
SQL 安全 数据库
Android -SQLite 的增删改查(CRUD)
Android -SQLite 的增删改查(CRUD)
124 0