源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android--SQLite(增,删,改,查)操作实例代码

  • 时间:2022-12-01 07:13 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android--SQLite(增,删,改,查)操作实例代码
需要5个类: 1.实体类:Person.java 2.抽象类:SQLOperate.java(封装了对数据库的操作) 3.助手类:DBOpenHelper.java(继承SQLiteOpenHelper) 4.实现类:SQLOperateImpl.java(实现抽象类SQLOperate.java) 5.测试类:Test.java(继承AndroidTestCase) [b]1.Person.java[/b]
[u]复制代码[/u] 代码如下:
package com.mrzhu.sqltite; public class Person {  private int _id;  private String name;  public int getId() {   return _id;  }  public void setId(int _id) {   this._id = _id;  }  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }  @Override  public String toString() {   return "Person [id=" + _id + ", name=" + name + "]";  }  public Person() {   super();  }  public Person(int _id, String name) {   super();   this._id = _id;   this.name = name;  } }
[b]2.SQLOperate.java[/b]
[u]复制代码[/u] 代码如下:
package com.mrzhu.sqltite; import java.util.List; /**  * 增删改查  * @author ZLQ  *  */ public interface SQLOperate {  public void add(Person p);  public void delete(int id);  public void updata(Person p);  public List<Person> find();  public Person findById(int id); }
[b]3.DBOpenHelper.java[/b]
[u]复制代码[/u] 代码如下:
package com.mrzhu.sqltite; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /**  * 助手类  * @author ZLQ  *  */ public class DBOpneHelper extends SQLiteOpenHelper {  private static final int VERSION = 1;//版本  private static final String DB_NAME = "people.db";//数据库名  public static final String STUDENT_TABLE = "student";//表名  public static final String _ID = "_id";//表中的列名  public static final String NAME = "name";//表中的列名  //创建数据库语句,STUDENT_TABLE,_ID ,NAME的前后都要加空格  private static final String CREATE_TABLE = "create table " + STUDENT_TABLE + " ( " + _ID + " Integer primary key autoincrement," + NAME + " text)";  public DBOpneHelper(Context context) {   super(context, DB_NAME, null, VERSION);  }  //数据库第一次被创建时调用  @Override  public void onCreate(SQLiteDatabase db) {   db.execSQL(CREATE_TABLE);  }  //版本升级时被调用  @Override  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  } }
[b]4.SQLOperateImpl.java[/b]
[u]复制代码[/u] 代码如下:
package com.mrzhu.sqltite; 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; public class SQLOperateImpl implements SQLOperate{  private DBOpneHelper dbOpenHelper;  public SQLOperateImpl(Context context) {   dbOpenHelper = new DBOpneHelper(context);  }  /**   * 增,用insert向数据库中插入数据   */  public void add(Person p) {   SQLiteDatabase db = dbOpenHelper.getWritableDatabase();   ContentValues values = new ContentValues();   values.put(DBOpneHelper._ID, p.getId());   values.put(DBOpneHelper.NAME, p.getName());   db.insert(DBOpneHelper.STUDENT_TABLE, null, values);  }  /**   * 删,通过id删除数据   */  public void delete(int id) {   SQLiteDatabase db = dbOpenHelper.getWritableDatabase();   db.delete(DBOpneHelper.STUDENT_TABLE, DBOpneHelper._ID + "=?", new String[]{String.valueOf(id)});  }  /**   * 改,修改指定id的数据   */  public void updata(Person p) {   SQLiteDatabase db = dbOpenHelper.getWritableDatabase();   ContentValues values = new ContentValues();   values.put(DBOpneHelper._ID, p.getId());   values.put(DBOpneHelper.NAME, p.getName());   db.update(DBOpneHelper.STUDENT_TABLE, values, DBOpneHelper._ID + "=?", new String[]{String.valueOf(p.getId())});  }  /**   * 查,查询表中所有的数据   */  public List<Person> find() {   List<Person> persons = null;   SQLiteDatabase db = dbOpenHelper.getReadableDatabase();   Cursor cursor = db.query(DBOpneHelper.STUDENT_TABLE, null, null, null, null, null, null);   if(cursor != null){    persons = new ArrayList<Person>();    while(cursor.moveToNext()){     Person person = new Person();     int _id = cursor.getInt(cursor.getColumnIndex(DBOpneHelper._ID));     String name = cursor.getString(cursor.getColumnIndex(DBOpneHelper.NAME));     person.setId(_id);     person.setName(name);     persons.add(person);    }   }   return persons;  }  /**   * 查询指定id的数据   */  public Person findById(int id) {   SQLiteDatabase db = dbOpenHelper.getReadableDatabase();   Cursor cursor = db.query(DBOpneHelper.STUDENT_TABLE, null, DBOpneHelper._ID + "=?", new String[]{String.valueOf(id)}, null, null, null);   Person person = null;   if(cursor != null && cursor.moveToFirst()){    person = new Person();    int _id = cursor.getInt(cursor.getColumnIndex(DBOpneHelper._ID));    String name = cursor.getString(cursor.getColumnIndex(DBOpneHelper.NAME));    person.setId(_id);    person.setName(name);   }   return person;  } }
[b]5.Test.java[/b]   在AndroidManifest.xml中的<application></application>外添加 (targetPackage是当前工程的包名)    <instrumentation android:targetPackage="com.mrzhu.sqltite" android:name="android.test.InstrumentationTestRunner"> </instrumentation>   在<application></application>中添加<uses-library android:name="android.test.runner"/>
[u]复制代码[/u] 代码如下:
package com.mrzhu.sqltite; import java.util.List; import android.test.AndroidTestCase; import android.util.Log; public class Test extends AndroidTestCase {  public void testAdd() throws Exception{   SQLOperateImpl test = new SQLOperateImpl(getContext());   Person person = new Person(2, "Peter");   test.add(person);  }  public void testDelete() throws Exception{   SQLOperateImpl test = new SQLOperateImpl(getContext());   test.delete(1);  }  public void testUpdata() throws Exception{   SQLOperateImpl test = new SQLOperateImpl(getContext());   Person person = new Person(1, "Tom");   test.updata(person);  }  public void testFind() throws Exception{   SQLOperateImpl test = new SQLOperateImpl(getContext());   List<Person> persons = test.find();   for (Person person : persons) {    Log.i("System.out", person.toString());   }  }  public void testFindById() throws Exception{   SQLOperateImpl test = new SQLOperateImpl(getContext());   Person person = test.findById(2);   Log.i("System.out", person.toString());  } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部