實驗SQLite數(shù)據(jù)庫的使用_第1頁
實驗SQLite數(shù)據(jù)庫的使用_第2頁
實驗SQLite數(shù)據(jù)庫的使用_第3頁
實驗SQLite數(shù)據(jù)庫的使用_第4頁
實驗SQLite數(shù)據(jù)庫的使用_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、實驗11SQLite數(shù)據(jù)庫的使用一、實驗?zāi)康?掌握創(chuàng)建SQLite數(shù)據(jù)庫的方法;2掌握實現(xiàn)對SQLite數(shù)據(jù)增刪改查的方法;3學(xué)會使用adb調(diào)試工具查看數(shù)據(jù)庫和數(shù)據(jù)表;二、知識要點1創(chuàng)建SQLite數(shù)據(jù)庫的方法:定義一個幫助類MyHelper繼承SQLiteOpentHelper類;在MyHelper類中定義構(gòu)造方法,重寫onCreate()和onUpgrade()方法;在onCreate(SQLiteDatabasedb)方法中,通過參數(shù)db調(diào)用execSQL(String sql)方法執(zhí)行建表SQL語句;創(chuàng)建一個MyHelper類對象helper,調(diào)用構(gòu)造方法對其進(jìn)行初始化,然后由help

2、er對象調(diào)用getWritableDatabase()方法或getReadableDatabase()創(chuàng)建數(shù)據(jù)庫。2實現(xiàn)SQLite數(shù)據(jù)增刪改查的方法:(1)添加數(shù)據(jù):獲取一個SQLiteDatabase對象db;通過db對象調(diào)用以下任一方法實現(xiàn)數(shù)據(jù)添加:a)execSQL(String sql)方法執(zhí)行insert SQL語句;如:db.execSQL(“insert into table_name(column_list) values(value_list)”);b)調(diào)用insert(表名,null,添加的數(shù)據(jù)values)方法:首先,定義一個ContentValues對象values,

3、通過values對象調(diào)用put()方法將要添加的數(shù)據(jù)存入values對象,然后再通過db對象調(diào)用insert()方法,將values中的數(shù)據(jù)添加到指定的數(shù)據(jù)表中。(2)更新數(shù)據(jù):獲取一個SQLiteDatabase對象db;通過db對象調(diào)用以下任一方法實現(xiàn)數(shù)據(jù)添加:a)execSQL(String sql)方法執(zhí)行update SQL語句;如:db.execSQL(“update table_name set column=value, where condition”);b)調(diào)用update(String table,ContentValuesvalues,StringwhereClause

4、,String whereArgs)方法:首先,定義一個ContentValues對象values,通過values對象調(diào)用put()方法將要更新的數(shù)據(jù)存入values對象,然后再通過db對象調(diào)用update()方法,指定要修改數(shù)據(jù)的表名,更新的數(shù)據(jù)values,約束更新某一行火某幾行中的數(shù)據(jù)。(3)刪除數(shù)據(jù):獲取一個SQLiteDatabase對象db;通過db對象調(diào)用以下任一方法實現(xiàn)數(shù)據(jù)添加:a)execSQL(String sql)方法執(zhí)行delete SQL語句;如:db.execSQL(“delete from table_name where condition”);b)調(diào)用del

5、ete(String table,String whereClause,String whereArgs)方法,指定要刪除數(shù)據(jù)的表名稱,以及約束刪除某一行或某幾行中的數(shù)據(jù)。(4)查詢數(shù)據(jù):獲取一個SQLiteDatabase對象db;通過db對象調(diào)用query()方法,指定要查詢的表名、列名、以及where約束條件等,并將查詢結(jié)果存入一個Cursor對象中。如:Cursor cursor=db.query(表名,列名,where約束條件,為where中的占位符提供具體的,null,null,null);三、實驗內(nèi)容1創(chuàng)建一個Android項目,項目名稱為“shiyan1101_專業(yè)_×

6、;××(學(xué)生姓名)”,要求:(1)自動創(chuàng)建Activity;(2)使用XML編寫界面;(3)界面構(gòu)成:4個文本框,分別用來顯示提示信息“圖書名稱”、“圖書作者”、“圖書價格”、“圖書頁數(shù)”;4個編輯框,分別用來接收用戶輸入“圖書名稱”、“圖書作者”、“圖書價格”、“圖書頁數(shù)”;5個按鈕,文本顯示分別為“創(chuàng)建SQLite數(shù)據(jù)庫”、“添加數(shù)據(jù)”、“修改數(shù)據(jù)”、“刪除數(shù)據(jù)”、“查詢數(shù)據(jù)”。(4)程序?qū)崿F(xiàn)功能:點擊“創(chuàng)建SQLite數(shù)據(jù)庫”按鈕,創(chuàng)建一個SQLite數(shù)據(jù)庫BookStore.db,并創(chuàng)建一個數(shù)據(jù)表Book,通過Toast顯示“數(shù)據(jù)庫BookStore.db創(chuàng)建成功!

7、”,要求使用adb查看數(shù)據(jù)庫創(chuàng)建是否成功。點擊“添加數(shù)據(jù)”按鈕,將用戶在編輯框中輸入的圖書名稱、圖書作者、圖書價格、圖書頁數(shù)等數(shù)據(jù)寫入添加到數(shù)據(jù)表Book中。點擊“修改數(shù)據(jù)”按鈕,將數(shù)據(jù)表Book中指定的數(shù)據(jù)進(jìn)行修改,條件根據(jù)題目自己設(shè)定。點擊“刪除數(shù)據(jù)”按鈕,將數(shù)據(jù)表Book中指定的數(shù)據(jù)刪除,刪除條件根據(jù)題目自己設(shè)定。點擊“查詢數(shù)據(jù)”按鈕,查詢數(shù)據(jù)表Book中指定的數(shù)據(jù),將查詢結(jié)果通過Log顯示。(5)實驗報告中要求用語言描述具體的實驗步驟,并附以截圖做輔助說明?!揪唧w過程參見課件第3部分?jǐn)?shù)據(jù)存儲中的練習(xí)2-6?!縈ydatebase,javapublic class Mydatebase

8、extends SQLiteOpenHelper public static final String cerat= "create table if not exists book( _id integer primary key autoincrement, " + "name text,zuozhe text , price real,page integer );" public Mydatebase(Context context, String name, CursorFactory factory,int version) super(co

9、ntext, name, factory, version);/ TODO Auto-generated constructor stubOverridepublic void onCreate(SQLiteDatabase db) / TODO Auto-generated method stubdb.execSQL( cerat);Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) / TODO Auto-generated method stub創(chuàng)建數(shù)據(jù)庫按鈕protected

10、void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mydb=new Mydatebase(MainActivity.this, "BookStore.db", null, 1);btcreat=(Button)findViewById(R.id.create);btcreat.setOnClickListener(new OnClickListener() Overridepublic void

11、onClick(View v) / TODO Auto-generated method stubdb=mydb.getWritableDatabase();/db.execSQL(INSERT_DATA);db.execSQL("insert into book (name,zuozhe,price,page)" +"Values('dnjkc','fdg',35.0,123)"););添加數(shù)據(jù)按鈕edname=(EditText)findViewById(R.id.ed1);edau=(EditText)findVie

12、wById(R.id.ed2);edjiage=(EditText)findViewById(R.id.ed3);edpage=(EditText)findViewById(R.id.ed4);btadd=(Button)findViewById(R.id.add);btadd.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) / TODO Auto-generated method stubString sname=edname.getText().toString();String sa

13、u=edau.getText().toString();Double djiage=Double.parseDouble(edjiage.getText().toString();int ipage=Integer.parseInt(edpage.getText().toString();ContentValues values=new ContentValues();values.put("name", sname);values.put("zuozhe",sau);values.put("price", djiage);value

14、s.put("page", ipage);SQLiteDatabase db=mydb.getWritableDatabase();db.insert("book", null, values););修改數(shù)據(jù)按鈕btgai=(Button)findViewById(R.id.xiu);btgai.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) / TODO Auto-generated method stubSQLiteDatabase db=myd

15、b.getWritableDatabase();db.execSQL("update book set name='孫孟也' where name='smy'"););刪除數(shù)據(jù)按鈕btdelete=(Button)findViewById(R.id.delete);btdelete.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) / TODO Auto-generated method stubSQLiteDatabase db=mydb

16、.getWritableDatabase();db.execSQL("delete from book where name='孫孟也'"););查詢數(shù)據(jù)按鈕btcha=(Button)findViewById(R.id.select);btcha.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) / TODO Auto-generated method stub SQLiteDatabase db=mydb.getWritableDatabase();

17、/查詢Book表中所有的數(shù)據(jù) Cursor cursor=db.query("Book", null, null, null, null, null, null); if(cursor.moveToFirst() do/遍歷cursor對象,取出數(shù)據(jù)并打印String name=cursor.getString(cursor.getColumnIndex("name");String author=cursor.getString(cursor.getColumnIndex("zuozhe");double price=cursor.getDouble(cursor.getColumnIndex("price");int pages=cursor.getInt(cursor.getColumnIndex("page");Log.d(&q

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論