一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

android中SQLite的使用總結(jié),用excSQL和rawQuery方法實(shí)現(xiàn)一般得增刪...

 杰出天下 2012-03-06

1:androidmanifest.xml的內(nèi)容

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas./apk/res/android"  
  3.       package="cn.itcast.db"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
  7.        <uses-library android:name="android.test.runner" />  
  8.         <activity android:name=".MainActivity"  
  9.                   android:label="@string/app_name">  
  10.             <intent-filter>  
  11.                 <action android:name="android.intent.action.MAIN" />  
  12.                 <category android:name="android.intent.category.LAUNCHER" />  
  13.             </intent-filter>  
  14.         </activity>  
  15.   
  16.     </application>  
  17.       
  18.     <uses-sdk android:minSdkVersion="8" />  
  19.     <!-- 配置測(cè)試環(huán)境 -->  
  20.     <instrumentation android:name="android.test.InstrumentationTestRunner"   
  21.                      android:targetPackage="cn.itcast.db"  
  22.                      android:label="Test for My App"/>  
  23.   
  24. </manifest>   

2:Person類

  1. package cn.itcast.domain;  
  2.   
  3. public class Person {  
  4.       
  5.     private Integer id;  
  6.     private String name;  
  7.       
  8.     public Person() {  
  9.           
  10.     }  
  11.   
  12.     public Integer getId() {  
  13.         return id;  
  14.     }  
  15.   
  16.     public void setId(Integer id) {  
  17.         this.id = id;  
  18.     }  
  19.   
  20.     public String getName() {  
  21.         return name;  
  22.     }  
  23.   
  24.     public void setName(String name) {  
  25.         this.name = name;  
  26.     }  
  27.   
  28.     @Override  
  29.     public String toString() {  
  30.         return "Person [id=" + id + ", name=" + name + "]";  
  31.     }  
  32.       
  33. }  

3:DBOpenHelper類,該類繼承了SQLiteOpenHelper類

  1. package cn.itcast.service;  
  2.   
  3. import android.content.Context;  
  4. import android.database.sqlite.SQLiteDatabase;  
  5. import android.database.sqlite.SQLiteOpenHelper;  
  6. import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  7.   
  8. public class DBOpenHelper extends SQLiteOpenHelper {  
  9.   
  10.     private static final String DATABASENAME = "cn.itcast.db";  
  11.     private static final int DATABASEVERSION = 1;  
  12.       
  13.     /* 
  14.      * 構(gòu)造函數(shù) 
  15.      */  
  16.     public DBOpenHelper(Context context) {  
  17.         super(context, DATABASENAME, null, DATABASEVERSION);  
  18.     }  
  19.   
  20.     /* 
  21.      * 數(shù)據(jù)庫(kù)第一次生成時(shí)調(diào)用該方法,創(chuàng)建一些表或者初始化一些數(shù)據(jù) 
  22.      * @see android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase) 
  23.      */  
  24.     @Override  
  25.     public void onCreate(SQLiteDatabase db) {  
  26.         db.execSQL("create table person(personid integer primary key autoincrement, name varchar(20))");  
  27.     }  
  28.   
  29.     @Override  
  30.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  31.   
  32.     }  
  33.   
  34. }  

4:PersonService類

  1. package cn.itcast.service;  
  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. import cn.itcast.domain.Person;  
  10.   
  11. public class PersonService {  
  12.       
  13.     private DBOpenHelper dbOpenHelper;  
  14.       
  15.     public PersonService(Context context) {  
  16.         this.dbOpenHelper = new DBOpenHelper(context);  
  17.     }  
  18.       
  19.     /* 
  20.      * save a person to the database 
  21.      */  
  22.     public void save(Person person) {  
  23.         SQLiteDatabase database = dbOpenHelper.getWritableDatabase();  
  24.         database.execSQL("insert into person(name) values (?)"new Object[]{person.getName()});  
  25.     }  
  26.       
  27.     /* 
  28.      * updata a person to the database 
  29.      */  
  30.     public void update(Person person) {  
  31.         SQLiteDatabase database = dbOpenHelper.getWritableDatabase();  
  32.         database.execSQL("update person set name=? where personid=?"new Object[]{person.getName(), person.getId()});  
  33.     }  
  34.       
  35.     /* 
  36.      * delete a person from the database according to the id 
  37.      */  
  38.     public void delete(Integer id) {  
  39.         SQLiteDatabase database = dbOpenHelper.getWritableDatabase();  
  40.         database.execSQL("delete from person where personid=?"new Object[]{id.toString()});  
  41.     }  
  42.       
  43.     /* 
  44.      * find a person from the database according to the id 
  45.      */  
  46.     public Person find(Integer id) {  
  47.         SQLiteDatabase database = dbOpenHelper.getReadableDatabase();  
  48.         Cursor cursor = database.rawQuery("select * from person where personid=?"new String[]{id.toString()});  
  49.         Person person = null;  
  50.         if(cursor.moveToFirst()) {  
  51.             Integer personid = cursor.getInt(cursor.getColumnIndex("personid"));  
  52.             String name = cursor.getString(cursor.getColumnIndex("name"));  
  53.             person = new Person();  
  54.             person.setId(personid);  
  55.             person.setName(name);  
  56.         }  
  57.         return person;  
  58.     }  
  59.       
  60.     /* 
  61.      * get the data of person accroding to the offset and maxResult 
  62.      */  
  63.     public List<Person> getScrollData(Integer offset, Integer maxResult) {  
  64.         SQLiteDatabase database = dbOpenHelper.getReadableDatabase();  
  65.         Cursor cursor = database.rawQuery("select * from person limit ?,?"new String[] {offset.toString(), maxResult.toString()});  
  66.         int idIndex = 0;  
  67.         int nameIndex = 0;  
  68.         List<Person> personList = null;  
  69.           
  70.         if(cursor.getCount() >= 0) {  
  71.              idIndex = cursor.getColumnIndex("personid");  
  72.              nameIndex = cursor.getColumnIndex("name");  
  73.              personList = new ArrayList<Person>();  
  74.         }  
  75.           
  76.         while(cursor.moveToNext()) {  
  77.             Integer personid = cursor.getInt(idIndex);  
  78.             String name = cursor.getString(nameIndex);  
  79.             Person person = new Person();  
  80.             person.setId(personid);  
  81.             person.setName(name);  
  82.             personList.add(person);  
  83.         }  
  84.         return personList;  
  85.     }  
  86.       
  87.     /* 
  88.      * get the count of the database 
  89.      */  
  90.     public long getCount(){  
  91.         SQLiteDatabase database = dbOpenHelper.getReadableDatabase();  
  92.         Cursor cursor = database.rawQuery("select count(*) from person"null);  
  93.         cursor.moveToFirst();  
  94.         return cursor.getLong(0);  
  95.     }  
  96.       
  97. }  

5:PersonServiceTest類

  1. package cn.itcast.db;  
  2.   
  3. import java.util.List;  
  4.   
  5. import android.test.AndroidTestCase;  
  6. import android.util.Log;  
  7. import cn.itcast.domain.Person;  
  8. import cn.itcast.service.DBOpenHelper;  
  9. import cn.itcast.service.PersonService;  
  10.   
  11. public class PersonServiceTest extends AndroidTestCase {  
  12.     private static final String TAG = "PersonServiceTest";  
  13.       
  14.     /* 
  15.      * 測(cè)試生成數(shù)據(jù)庫(kù)的方法 
  16.      */  
  17.     public void testCreateDB() throws Throwable {  
  18.         DBOpenHelper dbOpenHelper = new DBOpenHelper(this.getContext());  
  19.         dbOpenHelper.getWritableDatabase();  //第一次調(diào)用該方法會(huì)生成數(shù)據(jù)庫(kù)   
  20.           
  21.     }  
  22.       
  23.     /* 
  24.      * 測(cè)試保存方法 
  25.      */  
  26.     public void testSave() throws Throwable{  
  27.         PersonService personService = new PersonService(this.getContext());  
  28.           
  29.         Person person1 = new Person();  
  30.         person1.setName("zhangsan");  
  31.         personService.save(person1);  
  32.           
  33.         Person person2 = new Person();  
  34.         person2.setName("lisi");  
  35.         personService.save(person2);  
  36.           
  37.         Person person3 = new Person();  
  38.         person3.setName("wangwu");  
  39.         personService.save(person3);  
  40.           
  41.     }  
  42.       
  43.     public void testDelete() {  
  44.         PersonService personService = new PersonService(this.getContext());  
  45.         personService.delete(1);  
  46.           
  47.     }  
  48.       
  49.     /* 
  50.      * 測(cè)試更新方法 
  51.      */  
  52.     public void testUpdate() {  
  53.         PersonService personService = new PersonService(this.getContext());  
  54.         Person person = personService.find(1);  
  55.         person.setName("zhaoliu");  
  56.         personService.update(person);  
  57.           
  58.     }  
  59.       
  60.     /* 
  61.      * 測(cè)試獲得數(shù)據(jù)方法 
  62.      */  
  63.     public void testGetScrollData() throws Throwable{  
  64.         PersonService personService = new PersonService(this.getContext());  
  65.         List<Person> persons = personService.getScrollData(03);  
  66.         for(Person person : persons) {  
  67.             Log.i(TAG, person.toString());  
  68.         }  
  69.     }  
  70.       
  71.     /* 
  72.      * 測(cè)試根據(jù)id查找的方法 
  73.      */  
  74.     public void testFind() throws Throwable{  
  75.         PersonService personService = new PersonService(this.getContext());  
  76.         Person person = personService.find(1);  
  77.         Log.i(TAG, person.toString());  
  78.           
  79.     }  
  80.       
  81.     /* 
  82.      * 測(cè)試獲得數(shù)量的方法 
  83.      */  
  84.     public void testGetCount() {  
  85.         PersonService personService = new PersonService(this.getContext());  
  86.         long count = personService.getCount();  
  87.         Log.i(TAG, count + "");  
  88.     }  
  89. }  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    欧美三级不卡在线观线看| 日本不卡一区视频欧美| 欧美日韩国产精品自在自线| 97人妻人人揉人人躁人人| 千仞雪下面好爽好紧好湿全文| 色无极东京热男人的天堂| 熟女高潮一区二区三区| 人妻人妻人人妻人人澡| 91人妻人人揉人人澡人| 91欧美视频在线观看免费| 国产一区欧美一区二区| 婷婷色网视频在线播放| 成人午夜视频精品一区| 日本免费熟女一区二区三区| 欧美色欧美亚洲日在线| 日本福利写真在线观看| 91欧美日韩中在线视频| 国产一区二区不卡在线播放| 欧美日韩精品久久第一页| 99国产精品国产精品九九| 国产精品免费视频久久| 91超精品碰国产在线观看| 91亚洲国产日韩在线| 欧美日韩欧美国产另类| 亚洲欧美日韩色图七区| 国内欲色一区二区三区| 亚洲精品小视频在线观看| 中文字幕一区二区免费| 亚洲中文字幕在线观看四区| 欧美性猛交内射老熟妇| 日韩精品日韩激情日韩综合| 国产午夜福利不卡片在线观看| 五月的丁香婷婷综合网| 国产日韩欧美在线亚洲| 五月天丁香婷婷狠狠爱| 欧美精品女同一区二区| 婷婷伊人综合中文字幕| 欧美不卡一区二区在线视频| 欧美激情一区=区三区| 亚洲精品国产美女久久久99| 热久久这里只有精品视频|