freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android平臺(tái)的個(gè)人旅游系統(tǒng)的設(shè)計(jì)與_實(shí)現(xiàn)畢設(shè)論文(參考版)

2024-08-29 20:05本頁(yè)面
  

【正文】 if(()) { do{ photos。 ()。 db=new DBAdapter(getApplicationContext())。 (new OnClickListener() { public void onClick(View v) { startActivity(new Intent(shangchuan))。 Button buttonshangchuan = (Button) findViewById()。 public void onCreate(Bundle savedInstanceState) { (savedInstanceState)。 String photosbuffer=。 String photos[]。實(shí)現(xiàn)給部分功能部分代碼如下: public class myphoto extends Activity { TextView toptext。 23 finish()。 long id=(().toString(),().toString())。 } else { DBAdapter db=new DBAdapter(getApplicationContext())。 ()。 password2=(EditText) findViewById()。 queding=(Button) findViewById()。 setContentView()。 EditText password2。 Button queding。 import 。 import 。 import 。 import 。 22 1)注冊(cè)登錄功能 該部分實(shí)現(xiàn)用戶注冊(cè),設(shè)置賬號(hào)、密碼登錄系統(tǒng)。 表 41 用戶信息表 usertable id integer primary key number text not null password text 表 42 圖片信息表 phototable id integer primary key number text not null biaoti text not null photoname text not null miaoshu text 系統(tǒng)詳細(xì)功能設(shè)計(jì) 功能實(shí)現(xiàn) 根據(jù)需求,本文主要實(shí)現(xiàn)登陸功能,個(gè)人相冊(cè)功能以及照片瀏覽等功能。本系統(tǒng)共設(shè)計(jì)了兩張數(shù)據(jù)庫(kù) 表,分別是用戶表 usertable 和圖片信息表 phototable??傊?,兩種查詢方式各有千秋,我們?cè)谑褂脮r(shí)要選擇適合的方法來(lái)執(zhí)行,對(duì)于封裝好的查詢,就更適合用于執(zhí)行諸如創(chuàng)建、插入、修改和刪除等命令,在通訊錄的數(shù)據(jù)操作中我們就會(huì)選用此種查詢方式。但是封裝好的查詢也有一個(gè)弊端,即封裝性越強(qiáng),在執(zhí)行和獲取結(jié)果方面的控制性越差。 使用 sqlite3_ exec()函數(shù)可以非常迅速、方便的執(zhí)行 SQLite 數(shù)據(jù)庫(kù)的接口函數(shù)同時(shí),也提供了便利的方法用于修改數(shù)據(jù)庫(kù)中的數(shù)據(jù), sqlite3_ exec()函數(shù)的聲明如下所示: int sqlite3_ exec { sqlite3*db; const char*sql; int (*callback) (void *, int, char **, char** void *data; char **errmsg; } 其中 sql 參數(shù)用來(lái)存放需要執(zhí)行的 SQL 語(yǔ)句,整個(gè) sqlite3_ exec()函數(shù)按照 SQL 語(yǔ)句的順序逐一執(zhí)行,直至指令結(jié)束或是出現(xiàn)錯(cuò)誤。 20 圖 31 預(yù)備好的查詢執(zhí)行流程 2) 封裝好的查詢: 與預(yù)備好的查詢相比,封裝好的查詢將所有操作進(jìn)行包裝,提供給用戶一個(gè)獨(dú)立的函數(shù)來(lái)實(shí)現(xiàn)上面所有的功能。使用函數(shù)sqlite3_ finalize()來(lái)完成結(jié)束過(guò)程,具體語(yǔ)法如下所示: int sqlite3_ finalize(sqlite3_ stmt *pStmt); sqlite3_ finalize()函數(shù)會(huì)完成關(guān)閉指令、釋放資源、委托或回滾未處理完的事務(wù)、清理口志和釋放數(shù)據(jù)庫(kù)鎖等工作。如果當(dāng)前數(shù)據(jù)庫(kù)中正在進(jìn)行其他操作,則在調(diào)用時(shí)會(huì)返回一個(gè) SQLITE_ BUSY 或是一個(gè)忙處理程序。 執(zhí)行:使用 sqlite3_ step()函數(shù)執(zhí)行 sqlite3_repare()函數(shù)編譯出來(lái)的字節(jié)碼,具體語(yǔ)法如下所示: int sqlite3_ step(sqlite3_ stmt *pStmt); sqlite3_ step()函數(shù)獲取指令句柄并與虛擬機(jī)直接交互。 預(yù)備:一條 SQL 語(yǔ)句進(jìn)入 SQLite 數(shù)據(jù)庫(kù)中后,經(jīng)過(guò) SQLite 編譯器中的詞法分析器、語(yǔ)法分析器和代碼生成器處理后將其變?yōu)?SQLite 的匯編代碼,由虛擬機(jī)來(lái)執(zhí)行。預(yù)備好的查詢包含預(yù)備、執(zhí)行 和結(jié)束這三個(gè)步驟,而封裝好的查詢將所有的步驟封裝成一個(gè)獨(dú)立的函數(shù)來(lái)完成,使程序看起來(lái)更簡(jiǎn)潔。 關(guān)閉一個(gè)數(shù)據(jù)庫(kù)使用 sqlite3_ close()函數(shù), 具體語(yǔ)法如下所示: int sqlite3_ close(sqlite3 *ppD); 在關(guān)閉某個(gè)數(shù)據(jù)庫(kù)文件時(shí),系統(tǒng)會(huì)確定與該文件相關(guān)的全部操作己經(jīng)結(jié)束, 如果還有某些操作未結(jié)束, sqlite3_ close()函數(shù)會(huì)返回一個(gè)錯(cuò)誤信息“ Unable to close due to unfinalized statements”提示用戶。 數(shù)據(jù)庫(kù)文件的打開和關(guān)閉 數(shù)據(jù)庫(kù)中通常存有大量的數(shù)據(jù)文件 供不同應(yīng)用程序調(diào)用,我們常說(shuō)的打開一個(gè)數(shù)據(jù)庫(kù)實(shí)際上是打開某個(gè)數(shù)據(jù)庫(kù)中的文件,而關(guān)閉一個(gè)數(shù)據(jù)庫(kù)也是類似的意思,打開一個(gè)數(shù)據(jù)庫(kù)文件由 sqlite3_ open()或是 sqlite3_ openl6函數(shù) ()來(lái)完成,具體 語(yǔ)法如下所示: int sqlite3_ open { const char *filename; sqlite3 * *ppDb; 18 } //打開一個(gè)名為 filename ( UTF8的數(shù)據(jù)庫(kù)文件 int sqlite3_ openl6 { const char*filename; sqlite3 * *ppDb; } //打開一個(gè)名為 filename ( UTF16的數(shù)據(jù)庫(kù)文件 這幾行代碼的功能不僅可以實(shí)現(xiàn)打開一個(gè)數(shù)據(jù)庫(kù)的操作,而且在需要被打開的數(shù)據(jù)庫(kù)文件不存在的情況下,系統(tǒng)會(huì)先以此文件名建立一個(gè)數(shù)據(jù)庫(kù)文件,然后再打開該文件。另一類是擴(kuò)展的接口函數(shù),這些函數(shù)由用戶自己在 SQLite 數(shù)據(jù)庫(kù)基礎(chǔ)接口函數(shù)的基礎(chǔ)上根據(jù)一定的規(guī)則定義來(lái)實(shí)現(xiàn)一定的功能。 change_out:返回受上一行語(yǔ)句影響的行數(shù)。 last_ insert rowid():返回最后插入的數(shù)據(jù)的 ID。 sum(X):返回表達(dá)式 X 中項(xiàng)目值的總和。 max(X):返回表達(dá)式 X 中的最大值。 4) 集合函數(shù): avg(X):返回表達(dá)式 X 中的 平均值。 ifnull(X, Y):當(dāng) X 不為空時(shí),表達(dá)式的返回值為 X,若 X 為空,則表達(dá)式的返回值為 Y。 glob(X, Y):返回與指定模式相匹配的字符串。 randstrU 隨機(jī)產(chǎn)生一個(gè)字符串。 upper(X):將小寫字符數(shù)據(jù)裝換為大寫字符數(shù)據(jù)后返回字符表達(dá)式。 2) 字符串處理函數(shù): length(X):返回給定字符串表達(dá)式的字符個(gè)數(shù)。 random():返回隨機(jī)數(shù)。 1) 算術(shù)函數(shù): abs(X):返回給定數(shù)字表達(dá)式的絕對(duì)值 max(X, Y, [. . . . . . ]):返回給定表達(dá)式的最大值。事務(wù)處理還具有其他三條屬性,分別是一致性,隔離性和永久性一致性是指當(dāng)事務(wù)完成時(shí),數(shù)據(jù)必須處于一致?tīng)顟B(tài);隔離性是指對(duì)數(shù)據(jù)進(jìn)行修改的所有并發(fā)事務(wù)是彼此隔離的,即一個(gè)事物不應(yīng)以任何方式依賴或影響其他事務(wù);永久性是指當(dāng)事務(wù)完成后,它對(duì)數(shù)據(jù)庫(kù)的修改被永久保存。 事務(wù)處理 當(dāng)有多項(xiàng)相關(guān)的操作需要完成時(shí),可以使用 SQLite數(shù)據(jù)庫(kù)提供的事務(wù)處理機(jī)制,即使用多條 SQL 語(yǔ)句結(jié)合在一起形成一個(gè)邏輯處理單元,其中每條語(yǔ)句都只能完成整個(gè)任務(wù)中的一部分,所有語(yǔ)句合起來(lái)才能完成全部任務(wù)。 修改: UPDATE table name SET colume name=new value WHERE column name=some value,將 SQLite數(shù)據(jù)表中符合條件的記錄修改為新的數(shù)據(jù)。 數(shù)據(jù)操作 SQLite數(shù)據(jù)庫(kù)中的數(shù)據(jù)操作分為增加、刪除、修改和查找四個(gè)部分,各個(gè)操作的主要語(yǔ)法如下: 增加: INSERT INTO table name[columnl , column2, ...] VALUES (valuel ,value2, ...),向 SQLite數(shù)據(jù)庫(kù)的數(shù)據(jù)表中插入一行數(shù)據(jù)。 3) 刪除觸發(fā)器: DROP TR工 GGER[database_name]trigger_name,用來(lái)刪除一個(gè)觸發(fā)器。 結(jié)構(gòu)刪除 SQLite數(shù)據(jù)庫(kù)中的結(jié)構(gòu)刪除由以下四部分組成: 1) 刪除表: DROP TABLE[database_name]table_name,用來(lái)刪除數(shù)據(jù)表及該表的全部索引。 新建觸發(fā)器: CREATE TRIGGER trigger_name Database_eventON [database_ name]table_ name Trigger_ action Database_ event: delete /insert /update /update of Trigger_ action : BEGIN selectstatement/insert_ statement /update_ statement/delete_ statement END,用來(lái)在 SQLite數(shù)據(jù)庫(kù)中新 建一個(gè)觸發(fā)器,在用戶試圖對(duì)指定的表執(zhí)行指定的數(shù)據(jù)修改語(yǔ)句時(shí)自動(dòng)執(zhí)行,其中觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程。 3 SQLite 數(shù)據(jù)庫(kù) 15 SQLite 主要語(yǔ)法 結(jié) 構(gòu)新建 SQLite數(shù)據(jù)庫(kù)中的結(jié)構(gòu)新建由以下四個(gè)部分組成:新建表: CREATE TABLE table_ name (column_ name1 data type, column_ name2 data type,?? ),用來(lái)在 SQLite數(shù)據(jù)庫(kù)中新建一張數(shù)據(jù)表。 6) 事務(wù)性 : 采用獨(dú)立事物處理機(jī)制,遵守 ACID (Atomicity, Consistency,Isolation, Durability)原則。 4) 數(shù)據(jù)文件可跨平臺(tái)移植 : 不受操作系統(tǒng)位數(shù)和架構(gòu)的限制。 2) 沒(méi)有服務(wù)進(jìn)程 : 不需要提交到服務(wù)器處理后再返回結(jié)果。 SQLite中的數(shù)據(jù)庫(kù)文件是跨平臺(tái)的,可以在 32位和 64位系統(tǒng)之間,甚至BigEndian和 LittleEndian兩種不同的架構(gòu)之間自由的拷貝數(shù)據(jù), SQLite數(shù)據(jù)庫(kù)被用在大量的消費(fèi)類電子產(chǎn)品中。 2) 文件操作 : Android上層應(yīng)用程序是用 Java語(yǔ)言編 寫的,在 Java的 I/O包中提供了 大 量 的 文 件 讀 寫 函 數(shù) , 如 , , , Android對(duì)這些函數(shù)都有良好的支持,除此之外, Android還提供了 openFileInput和 openFileOutput這兩個(gè)函數(shù)用來(lái)簡(jiǎn)化對(duì)文件的讀寫操作,與Java I/O包中的函數(shù)所不同的是,這兩個(gè)函數(shù)只能操作當(dāng)前應(yīng)用程序所在目錄的文件。每個(gè)應(yīng)用程序 Context均有一個(gè) SharedPreferences對(duì)象,通過(guò)getSharedPreferences()函數(shù)來(lái)獲取該對(duì)象,通過(guò) getBoolean(), getFloat()和 getInt()等函數(shù)讀取該對(duì)象中存儲(chǔ)的數(shù)據(jù),這些函數(shù)一共有兩個(gè)參數(shù),第一個(gè)參數(shù)為鍵 /鍵值對(duì)中的鍵,第二個(gè)參數(shù)為指定鍵對(duì)應(yīng)的鍵值,如果該鍵值不存在則以默認(rèn)的函數(shù)返回值代替。 14 Android 系統(tǒng)數(shù)據(jù)存儲(chǔ)方式 Android系統(tǒng)一共提供了四種數(shù)據(jù)存儲(chǔ)方式,分別是 SharedPreferences(通過(guò)鍵值二元組存儲(chǔ) 簡(jiǎn)單數(shù)據(jù) )、文件 (存儲(chǔ)較大規(guī)模的數(shù)據(jù)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1