[android] sql語句實現資料庫的增刪改查

來源:互聯網
上載者:User

標籤:

Javaweb實現增刪改查的步驟,1.載入jdbc的驅動,2.串連到資料庫 3.準備sql語句,

Android中載入驅動已經完成了,拿到資料庫的引用就是連結資料庫了。

擷取SQLitedatabase 對象,調用上一節中helper對象的getWritableDatabase()方法

調用SQLitedatabase 對象的execSQL()方法,執行sql語句

例如:insert into person (name) values(”taoshihan”)

      Select * from person

      Update person set name=”tsh” where id=1

      Delete from person where id=1

 

一般情況下,給資料訪問層建個包叫dao,建個class叫PersonDao,建立構造方法,在裡面初始化helper,參數是Context上下文,擷取到SQLiteDatabase對象後記得要調用close()方法

 

Android中為了防止特殊字元,db對象提供了個帶有預留位置的方法execSQL(sql,Object[]),sql語句參數部分用?代替,object[] 數組裡面放參數變數。

查詢部分,調用db對象的rawQuery(sql,selectArgs),參數:sql語句和String[] 數組,返回Cursor對象結果集,調用Cursor對象的moveToNext()判斷是否能移動到下一條,返回bool,結果集也要close()

 

查詢全部,返回一個List集合,list裡面是每一個條目,封裝一個Person對象放進去,建立一個domain包,裡面定義屬性和set get方法,同樣是調用db對象的rawQuery方法,得到Cursor遊標對象,while(cursor.moveToNext()){}迴圈一下,往下移動一條,如果到最後一條會false。迴圈裡面調用Cursor對象的getInt(columnIndex)參數是欄位索引,索引可以通過getColumnIndex(columnName),參數是欄位名得到。Person業務對象加個toString()方法,方便 列印使用。

 

dao代碼:

package com.tsh.database.dao;import java.util.ArrayList;import java.util.List;import com.tsh.database.PersonSQLiteOpenHelper;import com.tsh.database.domain.Person;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class PersonDao {    private PersonSQLiteOpenHelper helper;    public PersonDao(Context context){        helper=new PersonSQLiteOpenHelper(context);            }    /**     * 增加一條     * @param name     */    public void add(String name){        SQLiteDatabase db=helper.getWritableDatabase();        db.execSQL("insert into person (name) values(?)",new Object[]{name});        db.close();    }    /**     * 查詢全部     * @return     */    public List<Person> select(){        List<Person> persons=new ArrayList<Person>();        SQLiteDatabase db=helper.getReadableDatabase();        Cursor cursor=db.rawQuery("select * from person", null);        while(cursor.moveToNext()){            int id=cursor.getInt(cursor.getColumnIndex("id"));            String name=cursor.getString(cursor.getColumnIndex("name"));            Person person=new Person(id,name);            persons.add(person);        }                cursor.close();        db.close();        return persons;    }    }

測試案例:

package com.tsh.database.test;import java.util.List;import com.tsh.database.PersonSQLiteOpenHelper;import com.tsh.database.dao.PersonDao;import com.tsh.database.domain.Person;import android.test.AndroidTestCase;public class TestPersonDb extends AndroidTestCase {    public void testPerson() throws Exception{        PersonSQLiteOpenHelper helper =new PersonSQLiteOpenHelper(getContext());        helper.getWritableDatabase();    }    /**     * 測試添加     * @throws Exception     */    public void testAdd() throws Exception{        PersonDao dao=new PersonDao(getContext());        dao.add("taoshihan");    }    /**     * 測試查詢     * @throws Exception     */    public void testSelect() throws Exception{        PersonDao dao=new PersonDao(getContext());        List<Person> persons=dao.select();        for(Person p:persons){            System.out.println(p.toString());        }    }    }

[android] sql語句實現資料庫的增刪改查

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.