Android下利用SQLite数据库实现增删改查
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android下利用SQLite数据库实现增删改查,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6938字,纯文字阅读大概需要10分钟。
内容图文
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, 1); } /** *数据库别创建的时候调用的方法 * */ @Override publicvoid onCreate(SQLiteDatabase db) { //初始化数据库的表结构 db.execSQL("create table person (id integer primary key autoincrement, name varchar(20), number varchar(20))"); } @Override publicvoid 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 */publicvoid 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; } /** * 删除一条记录 */publicvoid delete(Person person) { SQLiteDatabase db = helper.getWritableDatabase(); db.execSQL("delete from person where name = ?", new String[]{person.getName()}); db.close(); } /** * 更新 */publicvoid 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); } publiclong 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; } publicint delete(Person person) { SQLiteDatabase db = helper.getWritableDatabase(); int result = db.delete("person", "name = ?", new String[] {person.getName()}); db.close(); return result; } publicint 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(); } /** * 测试添加 */publicvoid testAdd() { //PersonDaoSQL dao = new PersonDaoSQL(getContext()); PersonDaoAPI dao = new PersonDaoAPI(getContext()); for (int i = 0; i < 10 ; ++i) { Person person = new Person("lisi" + i + 1, "1347515770" + i); dao.add(person); } } /** * 测试修改 */publicvoid testUpdate() { //PersonDaoSQL dao = new PersonDaoSQL(getContext()); PersonDaoAPI dao = new PersonDaoAPI(getContext()); Person person = new Person("lisi" + 11, "1347515770" + "x"); dao.update(person); } /** * 测试单个查询查询 */publicvoid testFind() { //PersonDaoSQL dao = new PersonDaoSQL(getContext()); PersonDaoAPI dao = new PersonDaoAPI(getContext()); Person person = new Person("lisi" + 21, "1347515770" + "x"); boolean result = dao.find(person); assertEquals(true, result); } /** * 查询所有 */publicvoid 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()); } } /** * 删除 */publicvoid testDelete() { PersonDaoSQL dao = new PersonDaoSQL(getContext()); Person person = new Person("lisi" + 21, "1347515770" + "x"); dao.delete(person); } }
原文:http://www.cnblogs.com/E-star/p/3871810.html
内容总结
以上是互联网集市为您收集整理的Android下利用SQLite数据库实现增删改查全部内容,希望文章能够帮你解决Android下利用SQLite数据库实现增删改查所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。