博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android -- Android JUint 与 Sqlite
阅读量:4933 次
发布时间:2019-06-11

本文共 3997 字,大约阅读时间需要 13 分钟。

创建一个数据库                                                                          

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
findAll() { SQLiteDatabase db = sqlite.getReadableDatabase(); List
persons = new ArrayList
(); //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
persons = dao.findAll(); for(Person p : persons) { System.out.println(p.toString()); } } }

测试权限                                                                                     

我是天王盖地虎的分割线                                                                

之前写过一个Sqlite的博客,但是没有这样测试着弄,是直接操作的,所以可能会有问题,这里再发一帖更正以前的错误。

源代码:

SQLite1.zip

 

 

转载请注明出处:

转载于:https://www.cnblogs.com/yydcdut/p/3790579.html

你可能感兴趣的文章
Codeforces 607D Power Tree 线段树 (看题解)
查看>>
写在人生的路上——2016年上半年总结
查看>>
员工选票系统-java
查看>>
C语言、C语言的起源以及类似C语言的编程语言的历史简直不要太漫长,我简单总结列表如下:...
查看>>
sp1.3-1.4 Neural Networks and Deep Learning
查看>>
JavaScript易错知识点整理
查看>>
Biological Clocks
查看>>
2018-10-11
查看>>
国内NLP的那些人那些会
查看>>
SQL 将一个表中的所有记录插入到一个临时表中
查看>>
nmea协议
查看>>
js 中对象的特性
查看>>
hdoj3714【三分】
查看>>
嵌入式开发入门(4)—驱动入门之时序图分析【20121211修改,未完】
查看>>
Python 使用字符串
查看>>
Quartz Core之CALayer
查看>>
java:一个项目的开发过程(转)
查看>>
express框架学习笔记
查看>>
记录一个css的综合运用
查看>>
在Ubuntu中安装PHP,MySQL,Nginx和phpMyAdmin
查看>>