Android下利用SQLite数据库实现增删改查
1: 首先介绍如何利用adb查看数据库
1: adb shell
2: cd /data/data/包名/databases
3: sqlite3 数据库
4 接下来就可以进行数据库的sql语法的使用了
bean对象:
- public class Person {
- private int id;
- private String name;
- private String number;
- }
数据库的创建以及表的创建:
- package com.example.db;
- import android.content.Context;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteDatabase.CursorFactory;
- import android.database.sqlite.SQLiteOpenHelper;
- public class BaseDao extends SQLiteOpenHelper{
- /**
- * 数据库的构造方法, 用来定义数据库的名称, 数据库查询结果集, 数据库的版本号
- *
- */
- public BaseDao(Context context) {
- super(context, "person.db", null, );
- }
- /**
- *数据库别创建的时候调用的方法
- *
- */
- @Override
- public void onCreate(SQLiteDatabase db) {
- //初始化数据库的表结构
- db.execSQL("create table person (id integer primary key autoincrement, name varchar(20), number varchar(20))");
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- // TODO Auto-generated method stub
- }
- }
利用纯SQL语句实现增删改查
- package com.example.dao;
- import java.util.ArrayList;
- import java.util.List;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import com.example.bean.Person;
- import com.example.db.BaseDao;
- public class PersonDaoSQL {
- private BaseDao helper; //helper
- /**
- * 在构造方法中实例化helper
- * @param context
- */
- public PersonDaoSQL(Context context) {
- helper = new BaseDao(context);
- }
- /**
- * 增
- * @param person
- */
- public void add(Person person) {
- SQLiteDatabase db = helper.getWritableDatabase();
- db.execSQL("insert into person (name, number) values(?, ?)", new String[] {person.getName(), person.getNumber()});
- db.close();
- }
- /**
- * 按姓名查
- * @param person
- * @return
- */
- public boolean find(Person person) {
- SQLiteDatabase db = helper.getReadableDatabase();
- Cursor cursor = db.rawQuery("select * from person where name = ?", new String[] {person.getName()});
- boolean result = cursor.moveToNext();
- cursor.close();
- db.close();
- return result;
- }
- /**
- * 删除一条记录
- */
- public void delete(Person person) {
- SQLiteDatabase db = helper.getWritableDatabase();
- db.execSQL("delete from person where name = ?", new String[]{person.getName()});
- db.close();
- }
- /**
- * 更新
- */
- public void update(Person person) {
- SQLiteDatabase db = helper.getWritableDatabase();
- db.execSQL("update person set number = ? where name = ?", new String[]{person.getNumber(),person.getName()});
- db.close();
- }
- public List<Person> findAll() {
- SQLiteDatabase db = helper.getReadableDatabase();
- Cursor cursor = db.rawQuery("select id, name, number from person", null);
- List<Person> persons = new ArrayList<Person>();
- Person person = 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 = new Person(id, name, number);
- persons.add(person);
- }
- cursor.close();
- db.close();
- return persons;
- }
- }
利用API实现增删改查:
- package com.example.dao;
- import java.util.ArrayList;
- import java.util.List;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import com.example.bean.Person;
- import com.example.db.BaseDao;
- public class PersonDaoAPI {
- private BaseDao helper; //helper
- /**
- * 在构造方法中实例化helper
- * @param context
- */
- public PersonDaoAPI(Context context) {
- helper = new BaseDao(context);
- }
- public long add(Person person) {
- SQLiteDatabase db = helper.getWritableDatabase();
- ContentValues values = new ContentValues();
- values.put("name", person.getName());
- values.put("number", person.getNumber());
- long result = db.insert("person", null, values);
- db.close();
- return result;
- }
- public int delete(Person person) {
- SQLiteDatabase db = helper.getWritableDatabase();
- int result = db.delete("person", "name = ?", new String[] {person.getName()});
- db.close();
- return result;
- }
- public int update(Person person) {
- SQLiteDatabase db = helper.getWritableDatabase();
- ContentValues values = new ContentValues();
- values.put("number", person.getNumber());
- int result = db.update("person", values, "name=?", new String[] {person.getName()});
- db.close();
- return result;
- }
- public boolean find(Person person) {
- SQLiteDatabase db = helper.getWritableDatabase();
- Cursor cursor = db.query("person", null, "name = ?", new String[]{person.getName()}, null, null, null);
- boolean result = cursor.moveToNext();
- db.close();
- return result;
- }
- public List<Person> findAll() {
- SQLiteDatabase db = helper.getWritableDatabase();
- Cursor cursor = db.query("person", null, null, null, null, null,null);
- List<Person> persons = new ArrayList<Person>();
- Person person = 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 = new Person(id, name, number);
- persons.add(person);
- }
- db.close();
- return persons;
- }
- }
利用Junit进行测试,
注意一定要在AndroidManifest.xml中添加:
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.db" />
和
<uses-library android:name="android.test.runner" />
- package com.example.test;
- import java.util.List;
- import android.test.AndroidTestCase;
- import com.example.bean.Person;
- import com.example.dao.PersonDaoAPI;
- import com.example.dao.PersonDaoSQL;
- import com.example.db.BaseDao;
- public class TestPersonDB extends AndroidTestCase {
- /**
- * 测试数据库的创建
- * @throws Exception
- */
- public void testCreateDB() throws Exception{
- BaseDao helper = new BaseDao(getContext());
- helper.getReadableDatabase();
- }
- /**
- * 测试添加
- */
- public void testAdd() {
- //PersonDaoSQL dao = new PersonDaoSQL(getContext());
- PersonDaoAPI dao = new PersonDaoAPI(getContext());
- for (int i = ; i < ; ++i) {
- Person person = new Person("lisi" + i + , "" + i);
- dao.add(person);
- }
- }
- /**
- * 测试修改
- */
- public void testUpdate() {
- //PersonDaoSQL dao = new PersonDaoSQL(getContext());
- PersonDaoAPI dao = new PersonDaoAPI(getContext());
- Person person = new Person("lisi" + , "" + "x");
- dao.update(person);
- }
- /**
- * 测试单个查询查询
- */
- public void testFind() {
- //PersonDaoSQL dao = new PersonDaoSQL(getContext());
- PersonDaoAPI dao = new PersonDaoAPI(getContext());
- Person person = new Person("lisi" + , "" + "x");
- boolean result = dao.find(person);
- assertEquals(true, result);
- }
- /**
- * 查询所有
- */
- public void testFindAll() {
- //PersonDaoSQL dao = new PersonDaoSQL(getContext());
- PersonDaoAPI dao = new PersonDaoAPI(getContext());
- List<Person> persons = dao.findAll();
- for (Person person : persons) {
- System.out.println(person.getName());
- }
- }
- /**
- * 删除
- */
- public void testDelete() {
- PersonDaoSQL dao = new PersonDaoSQL(getContext());
- Person person = new Person("lisi" + , "" + "x");
- dao.delete(person);
- }
- }
Android下利用SQLite数据库实现增删改查的更多相关文章
- Android 系统API实现数据库的增删改查和SQLite3工具的使用
在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...
- Android中Sqlite数据库进行增删改查
今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...
- Android SQL语句实现数据库的增删改查
本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...
- [Android] SQLite数据库之增删改查基础操作
在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Un ...
- android 对sqlite数据库的增删改查等各种操作
转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...
- Android对Sqlite数据库的增删改查
SqLite 数据库 Google 为我们提供了sqlite相关的api SqLiteOpenHelper 这是一个抽象的类 如果想要使用的话,需要其他的类去继承他 SqLiteDatabase 类 ...
- greendao对SQLite数据库的增删改查操作
利用greendao操作数据库时,都是以对象或者对象的list来进行增删改查的操作,操作的结果都是用一个list来接收的!!! 1.增加一条记录 Stu stu01=new Stu();stu01.s ...
- SQLite数据库以及增删改查的案例
Android使用开源的与操作系统无关的SQL数据库——SQLite 一:在命令行下创建数据库: 1.启动模拟器后,打开命令行,执行adb shell 2.进入所在工程目录 3.执行sqlite3 m ...
- Android学习---SQLite数据库的增删改查和事务(transaction)调用
上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代 ...
随机推荐
- JSP直接连接sql2008数据库并显示
<%@ page contentType="text/html; charset=utf-8" language="java" errorPage=&qu ...
- 在 VirtualBox 中 CentOS 网络设置
转自:本文发表于水景一页.永久链接:<http://cnzhx.net/blog/minimal-centos-in-virtualbox/>.转载请保留此信息及相应链接. 4. 设置¶ ...
- jquery.rotate.js库中的rotate函数怎么用。
rotate是jQuery旋转rotate插件,支持Internet Explorer 6.0+ .Firefox 2.0 .Safari 3 .Opera 9 .Google Chrome,高级浏览 ...
- js比typeof更准确的验证类型方法
var type = function (o){ var s = Object.prototype.toString.call(o); return s.match(/\[object (.*?)\] ...
- hashMap底层put和get方法逻辑
1.hashmap put方法的实现: public V put(K key, V value) { if (key == null) return putForNullKey(value); int ...
- 修改sql2005字段
alter table 表名 add 字段名 数据类型 default 默认值 增加:alter table AdCategory ADD SEOTitleNo varchar(50); 删除:ALT ...
- 【转】java_web开发入门
转载地址:http://www.cnblogs.com/xiaoqv/archive/2011/12/10/2283348.html 一.Tomcat服务器常见启动问题:(1).Java_home环境 ...
- Exact Change(背包HDU2753)
Exact Change Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- python 使用 redis expire属性设置访问时间间隔
安装redis yum install redis 安装python redis扩展 pip install redis 启动redis,并设定开机自动启动 service redis start c ...
- 解决maven项目将model version改成3.0版本问题
找到项目目录,找到.setting文件 找到org.eclipse.wst.common.project.facet.core.xml文件 修改如下标签 <installed facet=&qu ...