最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android--SQLite(增,刪,改,查)操作實(shí)例代碼

 更新時(shí)間:2013年02月25日 11:30:36   作者:  
Android--SQLite(增,刪,改,查)操作實(shí)例代碼,需要的朋友可以參考一下

需要5個(gè)類:

1.實(shí)體類:Person.java

2.抽象類:SQLOperate.java(封裝了對(duì)數(shù)據(jù)庫(kù)的操作)

3.助手類:DBOpenHelper.java(繼承SQLiteOpenHelper)

4.實(shí)現(xiàn)類:SQLOperateImpl.java(實(shí)現(xiàn)抽象類SQLOperate.java)

5.測(cè)試類:Test.java(繼承AndroidTestCase)


1.Person.java

復(fù)制代碼 代碼如下:

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;
 }
}

2.SQLOperate.java

復(fù)制代碼 代碼如下:

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);
}

3.DBOpenHelper.java

復(fù)制代碼 代碼如下:

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";//數(shù)據(jù)庫(kù)名
 public static final String STUDENT_TABLE = "student";//表名
 public static final String _ID = "_id";//表中的列名
 public static final String NAME = "name";//表中的列名
 //創(chuàng)建數(shù)據(jù)庫(kù)語(yǔ)句,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);
 }

 //數(shù)據(jù)庫(kù)第一次被創(chuàng)建時(shí)調(diào)用
 @Override
 public void onCreate(SQLiteDatabase db) {
  db.execSQL(CREATE_TABLE);
 }

 //版本升級(jí)時(shí)被調(diào)用
 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

 }

}

4.SQLOperateImpl.java

復(fù)制代碼 代碼如下:

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向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)
  */
 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);
 }

 /**
  * 刪,通過(guò)id刪除數(shù)據(jù)
  */
 public void delete(int id) {
  SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
  db.delete(DBOpneHelper.STUDENT_TABLE, DBOpneHelper._ID + "=?", new String[]{String.valueOf(id)});
 }

 /**
  * 改,修改指定id的數(shù)據(jù)
  */
 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())});
 }

 /**
  * 查,查詢表中所有的數(shù)據(jù)
  */
 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的數(shù)據(jù)
  */
 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;
 }
}

5.Test.java

 

在AndroidManifest.xml中的<application></application>外添加

(targetPackage是當(dāng)前工程的包名)

 

 <instrumentation

android:targetPackage="com.mrzhu.sqltite"

android:name="android.test.InstrumentationTestRunner">

</instrumentation>


 

在<application></application>中添加<uses-library android:name="android.test.runner"/>

復(fù)制代碼 代碼如下:

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());
 }
}

相關(guān)文章

  • Gradle 依賴切換源碼實(shí)踐示例詳解

    Gradle 依賴切換源碼實(shí)踐示例詳解

    這篇文章主要為大家介紹了Gradle 依賴切換源碼實(shí)踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Android StringBuffer的使用方法詳解

    Android StringBuffer的使用方法詳解

    StringBuffer類和String一樣,也用來(lái)代表字符串,只是由于StringBuffer的內(nèi)部實(shí)現(xiàn)方式和String不同,所以StringBuffer在進(jìn)行字符串處理時(shí),不生成新的對(duì)象,在內(nèi)存使用上要優(yōu)于String類
    2017-07-07
  • Android6.0指紋識(shí)別開(kāi)發(fā)實(shí)例詳解

    Android6.0指紋識(shí)別開(kāi)發(fā)實(shí)例詳解

    這篇文章主要介紹了Android6.0指紋識(shí)別開(kāi)發(fā)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • android獲取當(dāng)前手機(jī)號(hào)示例程序

    android獲取當(dāng)前手機(jī)號(hào)示例程序

    這篇文章主要介紹了android如何獲取當(dāng)前手機(jī)號(hào)的方法,大家參考使用吧
    2013-11-11
  • Android接入支付寶和微信支付的方法

    Android接入支付寶和微信支付的方法

    這篇文章主要介紹了Android接入支付寶和微信支付的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Android Socket實(shí)現(xiàn)多個(gè)客戶端聊天布局

    Android Socket實(shí)現(xiàn)多個(gè)客戶端聊天布局

    這篇文章主要為大家詳細(xì)介紹了Android Socket實(shí)現(xiàn)多個(gè)客戶端聊天布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Android開(kāi)發(fā)之經(jīng)典游戲貪吃蛇

    Android開(kāi)發(fā)之經(jīng)典游戲貪吃蛇

    貪吃蛇是一款足夠經(jīng)典的游戲。它的經(jīng)典,在于用戶操作的簡(jiǎn)單,在于技術(shù)實(shí)現(xiàn)的簡(jiǎn)介,在于他的經(jīng)久不衰。下面來(lái)看下如何在Android開(kāi)發(fā)這款經(jīng)典游戲。
    2016-07-07
  • Android數(shù)據(jù)庫(kù)LitePal的基本用法詳解

    Android數(shù)據(jù)庫(kù)LitePal的基本用法詳解

    這篇文章主要介紹了Android數(shù)據(jù)庫(kù)LitePal的基本用法詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Android table布局開(kāi)發(fā)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器

    Android table布局開(kāi)發(fā)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了Android table布局開(kāi)發(fā)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Gradle編譯打包Android apk詳細(xì)介紹

    Gradle編譯打包Android apk詳細(xì)介紹

    這篇文章主要介紹了Gradle編譯打包Android apk詳細(xì)介紹的相關(guān)資料,理解Gradle構(gòu)建過(guò)程,解讀Android Gradle插件的配置,需要的朋友可以參考下
    2016-12-12

最新評(píng)論

长治县| 湛江市| 邢台县| 义乌市| 阿鲁科尔沁旗| 汉寿县| 锡林郭勒盟| 洞口县| 阿巴嘎旗| 南乐县| 千阳县| 长泰县| 丹巴县| 汉阴县| 海口市| 张北县| 闽侯县| 双峰县| 新田县| 舞钢市| 邓州市| 卢龙县| 凉城县| 隆化县| 延安市| 定陶县| 崇明县| 嘉黎县| 绥宁县| 鹿泉市| 仁寿县| 淄博市| 佛教| 彭州市| 海林市| 延长县| 沽源县| 武陟县| 马边| 巴林右旗| 山东省|