1: 首先介绍如何利用adb查看数据库

1: adb shell

2: cd /data/data/包名/databases

3:  sqlite3 数据库

4   接下来就可以进行数据库的sql语法的使用了

bean对象:

  1. public class Person {
  2.  
  3. private int id;
  4. private String name;
  5. private String number;
  6.  
  7. }

数据库的创建以及表的创建:

  1. package com.example.db;
  2.  
  3. import android.content.Context;
  4. import android.database.sqlite.SQLiteDatabase;
  5. import android.database.sqlite.SQLiteDatabase.CursorFactory;
  6. import android.database.sqlite.SQLiteOpenHelper;
  7.  
  8. public class BaseDao extends SQLiteOpenHelper{
  9.  
  10. /**
  11. * 数据库的构造方法, 用来定义数据库的名称, 数据库查询结果集, 数据库的版本号
  12. *
  13. */
  14. public BaseDao(Context context) {
  15. super(context, "person.db", null, );
  16. }
  17.  
  18. /**
  19. *数据库别创建的时候调用的方法
  20. *
  21. */
  22. @Override
  23. public void onCreate(SQLiteDatabase db) {
  24. //初始化数据库的表结构
  25. db.execSQL("create table person (id integer primary key autoincrement, name varchar(20), number varchar(20))");
  26. }
  27.  
  28. @Override
  29. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  30. // TODO Auto-generated method stub
  31.  
  32. }
  33.  
  34. }

利用纯SQL语句实现增删改查

  1. package com.example.dao;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import android.content.Context;
  7. import android.database.Cursor;
  8. import android.database.sqlite.SQLiteDatabase;
  9.  
  10. import com.example.bean.Person;
  11. import com.example.db.BaseDao;
  12.  
  13. public class PersonDaoSQL {
  14.  
  15. private BaseDao helper; //helper
  16.  
  17. /**
  18. * 在构造方法中实例化helper
  19. * @param context
  20. */
  21. public PersonDaoSQL(Context context) {
  22. helper = new BaseDao(context);
  23. }
  24.  
  25. /**
  26. * 增
  27. * @param person
  28. */
  29. public void add(Person person) {
  30. SQLiteDatabase db = helper.getWritableDatabase();
  31. db.execSQL("insert into person (name, number) values(?, ?)", new String[] {person.getName(), person.getNumber()});
  32. db.close();
  33. }
  34.  
  35. /**
  36. * 按姓名查
  37. * @param person
  38. * @return
  39. */
  40. public boolean find(Person person) {
  41. SQLiteDatabase db = helper.getReadableDatabase();
  42. Cursor cursor = db.rawQuery("select * from person where name = ?", new String[] {person.getName()});
  43. boolean result = cursor.moveToNext();
  44. cursor.close();
  45. db.close();
  46. return result;
  47. }
  48.  
  49. /**
  50. * 删除一条记录
  51. */
  52. public void delete(Person person) {
  53. SQLiteDatabase db = helper.getWritableDatabase();
  54. db.execSQL("delete from person where name = ?", new String[]{person.getName()});
  55. db.close();
  56. }
  57.  
  58. /**
  59. * 更新
  60. */
  61. public void update(Person person) {
  62. SQLiteDatabase db = helper.getWritableDatabase();
  63. db.execSQL("update person set number = ? where name = ?", new String[]{person.getNumber(),person.getName()});
  64. db.close();
  65. }
  66. public List<Person> findAll() {
  67. SQLiteDatabase db = helper.getReadableDatabase();
  68. Cursor cursor = db.rawQuery("select id, name, number from person", null);
  69. List<Person> persons = new ArrayList<Person>();
  70. Person person = null;
  71. while (cursor.moveToNext()) {
  72. int id = cursor.getInt(cursor.getColumnIndex("id"));
  73. String name = cursor.getString(cursor.getColumnIndex("name"));
  74. String number = cursor.getString(cursor.getColumnIndex("number"));
  75. person = new Person(id, name, number);
  76. persons.add(person);
  77. }
  78. cursor.close();
  79. db.close();
  80. return persons;
  81. }
  82.  
  83. }

利用API实现增删改查:

  1. package com.example.dao;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import android.content.ContentValues;
  7. import android.content.Context;
  8. import android.database.Cursor;
  9. import android.database.sqlite.SQLiteDatabase;
  10.  
  11. import com.example.bean.Person;
  12. import com.example.db.BaseDao;
  13.  
  14. public class PersonDaoAPI {
  15.  
  16. private BaseDao helper; //helper
  17. /**
  18. * 在构造方法中实例化helper
  19. * @param context
  20. */
  21. public PersonDaoAPI(Context context) {
  22. helper = new BaseDao(context);
  23. }
  24.  
  25. public long add(Person person) {
  26. SQLiteDatabase db = helper.getWritableDatabase();
  27.  
  28. ContentValues values = new ContentValues();
  29. values.put("name", person.getName());
  30. values.put("number", person.getNumber());
  31. long result = db.insert("person", null, values);
  32.  
  33. db.close();
  34. return result;
  35. }
  36.  
  37. public int delete(Person person) {
  38. SQLiteDatabase db = helper.getWritableDatabase();
  39.  
  40. int result = db.delete("person", "name = ?", new String[] {person.getName()});
  41. db.close();
  42.  
  43. return result;
  44. }
  45.  
  46. public int update(Person person) {
  47. SQLiteDatabase db = helper.getWritableDatabase();
  48.  
  49. ContentValues values = new ContentValues();
  50. values.put("number", person.getNumber());
  51.  
  52. int result = db.update("person", values, "name=?", new String[] {person.getName()});
  53. db.close();
  54.  
  55. return result;
  56. }
  57.  
  58. public boolean find(Person person) {
  59. SQLiteDatabase db = helper.getWritableDatabase();
  60.  
  61. Cursor cursor = db.query("person", null, "name = ?", new String[]{person.getName()}, null, null, null);
  62. boolean result = cursor.moveToNext();
  63.  
  64. db.close();
  65. return result;
  66. }
  67.  
  68. public List<Person> findAll() {
  69. SQLiteDatabase db = helper.getWritableDatabase();
  70.  
  71. Cursor cursor = db.query("person", null, null, null, null, null,null);
  72. List<Person> persons = new ArrayList<Person>();
  73. Person person = null;
  74. while (cursor.moveToNext()) {
  75. int id = cursor.getInt(cursor.getColumnIndex("id"));
  76. String name = cursor.getString(cursor.getColumnIndex("name"));
  77. String number = cursor.getString(cursor.getColumnIndex("number"));
  78. person = new Person(id, name, number);
  79. persons.add(person);
  80. }
  81.  
  82. db.close();
  83. return persons;
  84. }
  85.  
  86. }

利用Junit进行测试,

注意一定要在AndroidManifest.xml中添加:

<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.db" />

<uses-library android:name="android.test.runner" />

  1. package com.example.test;
  2.  
  3. import java.util.List;
  4.  
  5. import android.test.AndroidTestCase;
  6.  
  7. import com.example.bean.Person;
  8. import com.example.dao.PersonDaoAPI;
  9. import com.example.dao.PersonDaoSQL;
  10. import com.example.db.BaseDao;
  11.  
  12. public class TestPersonDB extends AndroidTestCase {
  13. /**
  14. * 测试数据库的创建
  15. * @throws Exception
  16. */
  17. public void testCreateDB() throws Exception{
  18. BaseDao helper = new BaseDao(getContext());
  19. helper.getReadableDatabase();
  20. }
  21.  
  22. /**
  23. * 测试添加
  24. */
  25. public void testAdd() {
  26. //PersonDaoSQL dao = new PersonDaoSQL(getContext());
  27. PersonDaoAPI dao = new PersonDaoAPI(getContext());
  28. for (int i = ; i < ; ++i) {
  29. Person person = new Person("lisi" + i + , "" + i);
  30. dao.add(person);
  31. }
  32. }
  33. /**
  34. * 测试修改
  35. */
  36. public void testUpdate() {
  37. //PersonDaoSQL dao = new PersonDaoSQL(getContext());
  38. PersonDaoAPI dao = new PersonDaoAPI(getContext());
  39. Person person = new Person("lisi" + , "" + "x");
  40. dao.update(person);
  41. }
  42.  
  43. /**
  44. * 测试单个查询查询
  45. */
  46. public void testFind() {
  47. //PersonDaoSQL dao = new PersonDaoSQL(getContext());
  48. PersonDaoAPI dao = new PersonDaoAPI(getContext());
  49. Person person = new Person("lisi" + , "" + "x");
  50. boolean result = dao.find(person);
  51. assertEquals(true, result);
  52. }
  53.  
  54. /**
  55. * 查询所有
  56. */
  57. public void testFindAll() {
  58. //PersonDaoSQL dao = new PersonDaoSQL(getContext());
  59. PersonDaoAPI dao = new PersonDaoAPI(getContext());
  60. List<Person> persons = dao.findAll();
  61. for (Person person : persons) {
  62. System.out.println(person.getName());
  63. }
  64. }
  65.  
  66. /**
  67. * 删除
  68. */
  69. public void testDelete() {
  70. PersonDaoSQL dao = new PersonDaoSQL(getContext());
  71. Person person = new Person("lisi" + , "" + "x");
  72. dao.delete(person);
  73. }
  74.  
  75. }

Android下利用SQLite数据库实现增删改查的更多相关文章

  1. Android 系统API实现数据库的增删改查和SQLite3工具的使用

    在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...

  2. Android中Sqlite数据库进行增删改查

    今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...

  3. Android SQL语句实现数据库的增删改查

    本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...

  4. [Android] SQLite数据库之增删改查基础操作

        在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Un ...

  5. android 对sqlite数据库的增删改查等各种操作

    转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...

  6. Android对Sqlite数据库的增删改查

    SqLite 数据库 Google 为我们提供了sqlite相关的api SqLiteOpenHelper 这是一个抽象的类 如果想要使用的话,需要其他的类去继承他 SqLiteDatabase 类 ...

  7. greendao对SQLite数据库的增删改查操作

    利用greendao操作数据库时,都是以对象或者对象的list来进行增删改查的操作,操作的结果都是用一个list来接收的!!! 1.增加一条记录 Stu stu01=new Stu();stu01.s ...

  8. SQLite数据库以及增删改查的案例

    Android使用开源的与操作系统无关的SQL数据库——SQLite 一:在命令行下创建数据库: 1.启动模拟器后,打开命令行,执行adb shell 2.进入所在工程目录 3.执行sqlite3 m ...

  9. Android学习---SQLite数据库的增删改查和事务(transaction)调用

    上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代 ...

随机推荐

  1. JSP直接连接sql2008数据库并显示

    <%@ page contentType="text/html; charset=utf-8" language="java" errorPage=&qu ...

  2. 在 VirtualBox 中 CentOS 网络设置

    转自:本文发表于水景一页.永久链接:<http://cnzhx.net/blog/minimal-centos-in-virtualbox/>.转载请保留此信息及相应链接. 4. 设置¶ ...

  3. jquery.rotate.js库中的rotate函数怎么用。

    rotate是jQuery旋转rotate插件,支持Internet Explorer 6.0+ .Firefox 2.0 .Safari 3 .Opera 9 .Google Chrome,高级浏览 ...

  4. js比typeof更准确的验证类型方法

    var type = function (o){ var s = Object.prototype.toString.call(o); return s.match(/\[object (.*?)\] ...

  5. hashMap底层put和get方法逻辑

    1.hashmap put方法的实现: public V put(K key, V value) { if (key == null) return putForNullKey(value); int ...

  6. 修改sql2005字段

    alter table 表名 add 字段名 数据类型 default 默认值 增加:alter table AdCategory ADD SEOTitleNo varchar(50); 删除:ALT ...

  7. 【转】java_web开发入门

    转载地址:http://www.cnblogs.com/xiaoqv/archive/2011/12/10/2283348.html 一.Tomcat服务器常见启动问题:(1).Java_home环境 ...

  8. Exact Change(背包HDU2753)

    Exact Change Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. python 使用 redis expire属性设置访问时间间隔

    安装redis yum install redis 安装python redis扩展 pip install redis 启动redis,并设定开机自动启动 service redis start c ...

  10. 解决maven项目将model version改成3.0版本问题

    找到项目目录,找到.setting文件 找到org.eclipse.wst.common.project.facet.core.xml文件 修改如下标签 <installed facet=&qu ...