Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android SQLite數據讀取的實現

Android SQLite數據讀取的實現

編輯:高級開發

1 業務類 sqlite版本管理類

  Java代碼

  package it.service;

  import android.content.Context;

  import android.database.sqlite.SQLiteDatabase;

  import android.database.sqlite.SQLiteOpenHelper;

  /**

  *

  * 數據庫版本控制類

  * SQLiteOpenHelper是一個數據庫版本的控制超類

  *

  */

  public class MangerDatabase extends SQLiteOpenHelper {

  private static final String name="shool";

  private static final int version=2;

  /**

  *

  * @param context 上下文信息

  * @param name 數據庫名稱

  * @param CursorFactory factory 游標工廠

  * @param version 數據庫版本

  * 執行數據參數的初始化工作

  */

  public MangerDatabase(Context context) {

  //調用超類的構造方法

  super(context, name, null, version);

  }

  /**

  * 如果沒有數據庫中沒有此表 就創建表結構 覆寫超類的創建的方法

  * 這個方法在超類中是一個只有方法體沒有實現體的

  * onCreate 創建方法 在用戶執行調用獲取用戶數據庫管理時例就已經執行

  * 此方法是超類存在的 並且由 getWritableDatabase()這個方法調用的

  */

  @Override

  public void onCreate(SQLiteDatabase db) {

  db.execSQL("CREATE TABLE person (personid integer primary key autoincrement, name varchar(20), age INTEGER,xxx INTEGER)");

  }

  /**

  * 執行更新 如果表存在 將執行更新操作

  * oldVersion 老版本號

  * newVersio 新版本號

  * onUpgrade 創建方法 在用戶執行調用獲取用戶數據庫管理時例就已經執行

  * 此方法是超類存在的 並且由 getWritableDatabase()這個方法調用的

  */

  @Override

  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

  //先刪除

  db.execSQL("DROP TABLE IF EXISTS person");//

  android:layout_height="wrap_content"

  android:textSize="20px"

  android:id="@+id/personid"

  />

  < p>

  android:layout_width="150px"

  android:layout_height="wrap_content"

  android:layout_toRightOf="@id/personid"

  android:layout_alignTop="@id/personid"

  android:gravity="center_horizontal"

  android:textSize="20px"

  android:id="@+id/name"

  />

  < p>

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:layout_alignTop="@id/name"

  android:layout_toRightOf="@id/name"

  android:gravity="right"

  android:textSize="20px"

  android:id="@+id/age"

  android:layout_height="wrap_content"

  android:textSize="20px"

  android:id="@+id/personid"

  />

  < p>

  android:layout_width="150px"

  android:layout_height="wrap_content"

  android:layout_toRightOf="@id/personid"

  android:layout_alignTop="@id/personid"

  android:gravity="center_horizontal"

  android:textSize="20px"

  android:id="@+id/name"

  />

  < p>

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:layout_alignTop="@id/name"

  android:layout_toRightOf="@id/name"

  android:gravity="right"

  android:textSize="20px"

  android:id="@+id/age"

  />

  

  7 視圖界面主文件 2

  XML代碼

  

  < XMLns:android="http://schemas.android.com/apk/res/android">

  android:orIEntation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  >

  < p>

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  android:id="@+id/listvIEw"

  />

  

  

  < XMLns:android="http://schemas.android.com/apk/res/android">

  android:orIEntation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  >

  < p>

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  接上頁

  android:id="@+id/listvIEw"

  />

  

  8 業務bean

  Java代碼

  package it.bean;

  /**

  *

  * 數據庫的實體類

  *

  */

  public class Person {

  private Integer personId;

  private String name;

  private Short age;

  public Person() {

  }

  public Person(Integer personId, String name, Short age) {

  this.personId = personId;

  this.name = name;

  this.age = age;

  }

  public Person(String name, Short age) {

  this.name=name;

  this.age=age;

  }

  public Integer getPersonId() {

  return personId;

  }

  public void setPersonId(Integer personId) {

  this.personId = personId;

  }

  public String getName() {

  return name;

  }

  public void setName(String name) {

  this.name = name;

  }

  public Short getAge() {

  return age;

  }

  public void setAge(Short age) {

  this.age = age;

  }

  @Override

  public String toString() {

  return "Person [personId=" + personId + ", name=" + name + ", age="

  + age + "]";

  }

  }

  package it.bean;

  /**

  *

  * 數據庫的實體類

  *

  */

  public class Person {

  private Integer personId;

  private String name;

  private Short age;

  public Person() {

  }

  public Person(Integer personId, String name, Short age) {

  this.personId = personId;

  this.name = name;

  this.age = age;

  }

  public Person(String name, Short age) {

  this.name=name;

  this.age=age;

  接上頁

  }

  public Integer getPersonId() {

  return personId;

  }

  public void setPersonId(Integer personId) {

  this.personId = personId;

  }

  public String getName() {

  return name;

  }

  public void setName(String name) {

  this.name = name;

  }

  public Short getAge() {

  return age;

  }

  public void setAge(Short age) {

  this.age = age;

  }

  @Override

  public String toString() {

  return "Person [personId=" + personId + ", name=" + name + ", age="

  + age + "]";

  }

  }

  9 主應用 Activity

  Java代碼

  package it.date;

  import it.bean.Person;

  import it.service.PersonService;

  import Java.util.ArrayList;

  import Java.util.HashMap;

  import Java.util.List;

  import android.app.Activity;

  import android.database.Cursor;

  import android.os.Bundle;

  import android.util.Log;

  import android.view.VIEw;

  import android.widget.AdapterVIEw;

  import android.widget.AdapterVIEw.OnItemClickListener;

  import android.widget.ListVIEw;

  import android.widget.SimpleAdapter;

  import android.widget.SimpleCursorAdapter;

  import android.widget.Toast;

  public class DataActivity extends Activity {

  private static final String TAG="DataActivity";

  private ListView listvIEw;

  private PersonService personservice;

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentVIEw(R.layout.main);

  //獲取ListVIEw

  listview=(ListView)this.findViewById(R.id.listvIEw);

  //獲取數據庫德數據

  接上頁

  personservice=new PersonService(this);

  /**

  *方法一 SimpleAdapter 適配器 綁定的參數數據是list對象 比較?嗦

  */

  List persons=personservice.getdatePerson(9, 20);

  //綁定數據 設置適配器

  List> list=new ArrayList>();

  /**

  * 適配器有 ArrayAdapter T 可以是String Integer

  * SimpleAdapter,SimpleCursorAdapter

  */

  HashMap hs=new HashMap();

  hs.put("personid", "編號");

  hs.put("name", "名稱");

  hs.put("age", "年齡");

  list.add(hs);

  for(Person person:persons){

  HashMap map=new HashMap();

  map.put("personid", String.valueOf(person.getPersonId()));

  map.put("name", person.getName());

  map.put("age", String.valueOf(person.getAge()));

  list.add(map);

  }

  /**

  * 定義一個適配器 參數一 上下文信息 當前的上下文信息 是當前的類

  * 參數二 加載的值

  * 參數三 加載的視圖界面文件

  * 參數四 加載的目錄 這個目錄 是根據鍵值去取的值 在上面已經設置好了這個鍵值對

  * 參數五 加載的數據對應的屬性

  */

  SimpleAdapter adapter=new SimpleAdapter(DataActivity.this, list, R.layout.person,new String[]{"personid",

  "name","age"}, new int[]{R.id.personid,R.id.name,R.id.age});

  //給這個ListVIEw設置初始的適配器

  listvIEw.setAdapter(adapter);

  // 為ListVIEw添加事件

  listvIEw.setOnItemClickListener(new OnItemClickListener() {

  /**

  * 參數一 表示 點擊的 listvIEw

  * 參數二 表示點擊的最外層的那個元素

  * 說明 int position, long id 是所在行的id

  */

  @Override

  public void onItemClick(AdapterView parent, View vIEw,

  int position, long id) {

  ListView listView = (ListVIEw)parent;

  //獲取所在行的數據 position和id都表示選擇的item數據

  接上頁

  HashMap itemData = (HashMap)listVIEw.getItemAtPosition(position);

  String personid = itemData.get("personid");

  String name = itemData.get("name");

  String age = itemData.get("age");

  //輸出 01-17 14:54:47.919: INFO/DataActivity(9280):

  //className=android.widget.RelativeLayout

  Log.i(TAG, "className="+ vIEw.getClass().getName());

  Log.i(TAG, "personid="+ personid+ "name="+name + "age"+ age);

  Log.i(TAG, "result="+ (position==id)); //trues

  Log.i(TAG, "id="+id);

  Log.i("TAG", "position="+position);

  Toast.makeText(DataActivity.this, name.toString(),

  1).show();

  }

  });

  /**

  * 方法二 獲取 值

  * 推薦使用方法二去設置適配器 獲取數據的值 這樣會更合理

  * 綁定的數據是游標形式 但是主鍵id 必須以_id命名 如果不是 可以在查詢數據的時候設置別名 並且綁定的參數必須是_id

  * 否則會報異常信息

  */

  // Cursor cursor = personservice.getdateRawPerson(0, 10);

  /**

  * 參數一 上下文信息

  * 參數二 加載的視圖界面文件

  * 參數三 游標數據

  * 參數四 數據目錄

  * 參數五 對應的數據值對應的id

  * 表示把參數五對應的字段 參數四綁定起來

  * 注意 列名 必須指定為_id 如果你的數據的主鍵id 不是以_id命名 必須在查詢的時候 指定 別名為_id 否則會報異常信息

  */

  // SimpleCursorAdapter ada = new SimpleCursorAdapter(this, R.layout.person, cursor,

  // new String[]{"_id", "name", "age"}, new int[]{R.id.personid, R.id.name, R.id.age});

  //綁定適配器

  // listvIEw.setAdapter(ada);

  }

  }

  package it.date;

  import it.bean.Person;

  import it.service.PersonService;

  import Java.util.ArrayList;

  import Java.util.HashMap;

  import Java.util.List;

  import android.app.Activity;

  接上頁

  import android.database.Cursor;

  import android.os.Bundle;

  import android.util.Log;

  import android.view.VIEw;

  import android.widget.AdapterVIEw;

  import android.widget.AdapterVIEw.OnItemClickListener;

  import android.widget.ListVIEw;

  import android.widget.SimpleAdapter;

  import android.widget.SimpleCursorAdapter;

  import android.widget.Toast;

  public class DataActivity extends Activity {

  private static final String TAG="DataActivity";

  private ListView listvIEw;

  private PersonService personservice;

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentVIEw(R.layout.main);

  //獲取ListVIEw

  listview=(ListView)this.findViewById(R.id.listvIEw);

  //獲取數據庫德數據

  personservice=new PersonService(this);

  /**

  *方法一 SimpleAdapter 適配器 綁定的參數數據是list對象 比較?嗦

  */

  List persons=personservice.getdatePerson(9, 20);

  //綁定數據 設置適配器

  List> list=new ArrayList>();

  /**

  * 適配器有 ArrayAdapter T 可以是String Integer

  * SimpleAdapter,SimpleCursorAdapter

  */

  HashMap hs=new HashMap();

  hs.put("personid", "編號");

  hs.put("name", "名稱");

  hs.put("age", "年齡");

  list.add(hs);

  for(Person person:persons){

  HashMap map=new HashMap();

  map.put("personid", String.valueOf(person.getPersonId()));

  map.put("name", person.getName());

  map.put("age", String.valueOf(person.getAge()));

  list.add(map);

  }

  /**

  * 定義一個適配器 參數一 上下文信息 當前的上下文信息 是當前的類

  * 參數二 加載的值

  * 參數三 加載的視圖界面文件

  接上頁

  * 參數四 加載的目錄 這個目錄 是根據鍵值去取的值 在上面已經設置好了這個鍵值對

  * 參數五 加載的數據對應的屬性

  */

  SimpleAdapter adapter=new SimpleAdapter(DataActivity.this, list, R.layout.person,new String[]{"personid",

  "name","age"}, new int[]{R.id.personid,R.id.name,R.id.age});

  //給這個ListVIEw設置初始的適配器

  listvIEw.setAdapter(adapter);

  // 為ListVIEw添加事件

  listvIEw.setOnItemClickListener(new OnItemClickListener() {

  /**

  * 參數一 表示 點擊的 listvIEw

  * 參數二 表示點擊的最外層的那個元素

  * 說明 int position, long id 是所在行的id

  */

  @Override

  public void onItemClick(AdapterView parent, View vIEw,

  int position, long id) {

  ListView listView = (ListVIEw)parent;

  //獲取所在行的數據 position和id都表示選擇的item數據

  HashMap itemData = (HashMap)listVIEw.getItemAtPosition(position);

  String personid = itemData.get("personid");

  String name = itemData.get("name");

  String age = itemData.get("age");

  //輸出 01-17 14:54:47.919: INFO/DataActivity(9280):

  //className=android.widget.RelativeLayout

  Log.i(TAG, "className="+ vIEw.getClass().getName());

  Log.i(TAG, "personid="+ personid+ "name="+name + "age"+ age);

  Log.i(TAG, "result="+ (position==id)); //trues

  Log.i(TAG, "id="+id);

  Log.i("TAG", "position="+position);

  Toast.makeText(DataActivity.this, name.toString(),

  1).show();

  }

  });

  /**

  * 方法二 獲取 值

  * 推薦使用方法二去設置適配器 獲取數據的值 這樣會更合理

  * 綁定的數據是游標形式 但是主鍵id 必須以_id命名 如果不是 可以在查詢數據的時候設置別名 並且綁定的參數必須是_id

  * 否則會報異常信息

  */

  // Cursor cursor = personservice.getdateRawPerson(0, 10);

  接上頁

  /**

  * 參數一 上下文信息

  * 參數二 加載的視圖界面文件

  * 參數三 游標數據

  * 參數四 數據目錄

  * 參數五 對應的數據值對應的id

  * 表示把參數五對應的字段 參數四綁定起來

  * 注意 列名 必須指定為_id 如果你的數據的主鍵id 不是以_id命名 必須在查詢的時候 指定 別名為_id 否則會報異常信息

  */

  // SimpleCursorAdapter ada = new SimpleCursorAdapter(this, R.layout.person, cursor,

  // new String[]{"_id", "name", "age"}, new int[]{R.id.personid, R.id.name, R.id.age});

  //綁定適配器

  // listvIEw.setAdapter(ada);

  }

  }

  ok 到這裡就全部結束了 大家只要看懂了源代碼 就完全明白了sqlite這種嵌入式的sql了

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved