偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Android SQLite3基礎(chǔ)入門教程:建立數(shù)據(jù)庫(kù)

移動(dòng)開發(fā) Android
本文將介紹Android SQLite3基礎(chǔ)入門教程——建立數(shù)據(jù)庫(kù)。Android 中, SQLite 是被集成于 Android runtime ,每個(gè) Android 應(yīng)用程序都可以歡快的使用 SQLite 數(shù)據(jù)庫(kù),如果你熟悉 JDBC ,那么這個(gè)過程就更安逸了。

背景

SQLite 是一個(gè)非常流行的嵌入式數(shù)據(jù)庫(kù),它提供了一個(gè)清爽的 SQL 接口,相當(dāng)小的內(nèi)存占用和高速的響應(yīng),更 Happy 的是他還是免費(fèi)的,大家都可以盡情的使用,很多牛叉的公司(諸如 Adobe,Apple,Google,Sun,Symbian ),開源項(xiàng)目( Mozilla,PHP,Python )都在產(chǎn)品中裝配 SQLite.

SQLite3 特征

和傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)比較

有的:

Sql 語句: SELECT INSERT UPDATE

CREATE DROP

數(shù)據(jù)類型:

不區(qū)分大小寫

TEXT 文本

NUMERIC 數(shù)值

INTEGER 整型

REAL 小數(shù)

NONE 無類型

沒有的:

FOREIGN KEY 外鍵約束

RIGHT OUTER JOIN 和 FULL OUTER JOIN

ALTER TABLE

開始動(dòng)手

動(dòng)手之前,確認(rèn)你的機(jī)器中已經(jīng)配置好如下環(huán)境:

Android 開發(fā)環(huán)境(怎么配置問 Google ,有很多)

本文檔適用環(huán)境 Android 1.0

1, 建庫(kù)

方式一:命令行方式(適合調(diào)試用)

可以使用 adb shell 進(jìn)入設(shè)備后臺(tái),命令行方式手動(dòng)創(chuàng)建,步驟如下:

Eclipse 中啟動(dòng)模擬器之后, cmd 下輸入進(jìn)入設(shè)備 Linux 控制臺(tái)

D:\>adb shell

之后進(jìn)入應(yīng)用 data 目錄

# cd /data/data

ls 列表目錄,查看文件,找到你的項(xiàng)目目錄并進(jìn)入

查看有無 databases 目錄,如果沒有,則創(chuàng)建一個(gè)

# mkdir databases

cd databases 進(jìn)入并創(chuàng)建數(shù)據(jù)庫(kù)

# sqlite3 friends.db

sqlite3 friends.db

SQLite version 3.5.9

Enter ".help" for instructions

sqlite>

ctrl+d 退出 sqlite 提示符 ls 列表目錄會(huì)看到有一個(gè)文件被創(chuàng)建 friends.db

他就是 SQLite 的庫(kù)文件

# ls

ls

friends.db

方式二:編碼方式(使用更多)

android.content.Context 中提供了函數(shù) , 注: Activity 是 Context 的子類

openOrCreateDatabase () 來創(chuàng)建我們的數(shù)據(jù)庫(kù)

db = context .openOrCreateDatabase(

String DATABASE_NAME , int Context. MODE_PRIVATE , null );

String DATABASE_NAME 數(shù)據(jù)庫(kù)的名字

Int MODE 操作模式 Context.MODE_PRIVATE 等

CursorFactory 指針工廠 ,本例中傳入 null ,暫不用

2, 建表

命令行方式

# sqlite3

sqlite> create table widgets (id integer primary key autoincrement,name text);

3, 插入數(shù)據(jù)

命令行 增加,查詢數(shù)據(jù)

sqlite> insert into widgets values(null,'tom');

insert into widgets values(null,'tom');

sqlite> select * from widgets;

select * from widgets;

1|tom

sqlite>

API 方式

  1. package org.imti;   
  2.    
  3. import android.app.Activity;   
  4. import android.database.Cursor;   
  5. import android.os.Bundle;   
  6. import android.view.View;   
  7. import android.view.View.OnClickListener;   
  8. import android.widget.Button;   
  9. import android.widget.EditText;   
  10. import android.widget.TextView;   
  11.    
  12. /**  
  13.  * SQLite Demo  
  14.  *   
  15.  * 供Activity私有訪問的數(shù)據(jù)庫(kù) 沒有使用ContentProvider 方式 增加 查詢數(shù)據(jù)  
  16.  *   
  17.  * @author daguangspecial@gmail.com  
  18.  *   
  19.  */   
  20. public class DbDemo extends Activity {   
  21.     EditText inputTxt;   
  22.     Button btnAdd;   
  23.     Button btnViewAll;   
  24.     TextView viewAll;   
  25.    
  26.     DBHelper db;   
  27.    
  28.     @Override   
  29.     protected void onCreate(Bundle savedInstanceState) {   
  30.         // TODO Auto-generated method stub   
  31.         super.onCreate(savedInstanceState);   
  32.         this.setContentView(R.layout.dbdemo);   
  33.         // 初始化UI   
  34.         btnAdd = (Button) findViewById(R.id.btnAdd);   
  35.         btnViewAll = (Button) findViewById(R.id.btnViewAll);   
  36.         viewAll = (TextView) findViewById(R.id.viewAll);   
  37.         inputTxt = (EditText) findViewById(R.id.txtInput);   
  38.         // 初始化DB   
  39.         db = new DBHelper(this);   
  40.         // 初始化監(jiān)聽   
  41.         OnClickListener listener = new OnClickListener() {   
  42.    
  43.             public void onClick(View v) {   
  44.                 if (v.getId() == R.id.btnAdd) {   
  45.                     // 增加   
  46.                     db.save(inputTxt.getText().toString());   
  47.                                        db.close();   
  48.                 } else if (v.getId() == R.id.btnViewAll) {   
  49.                     // 瀏覽所有數(shù)據(jù)   
  50.                     Cursor cur = db.loadAll();   
  51.                     StringBuffer sf = new StringBuffer();   
  52.                     cur.moveToFirst();   
  53.                     while (!cur.isAfterLast()) {   
  54.                         sf.append(cur.getInt(0)).append(" : ").append(   
  55.                                 cur.getString(1)).append("\n");   
  56.                         cur.moveToNext();   
  57.                     }   
  58.                                       db.close();   
  59.                     viewAll.setText(sf.toString());   
  60.                 }   
  61.             }   
  62.         };   
  63.         btnAdd.setOnClickListener(listener);   
  64.         btnViewAll.setOnClickListener(listener);   
  65.     }   
  66.    
  67. }   

Java代碼

  1. package org.imti;   
  2.    
  3. import android.content.Context;   
  4. import android.database.Cursor;   
  5. import android.database.sqlite.SQLiteDatabase;   
  6. import android.util.Log;   
  7.    
  8. /**  
  9.  * 數(shù)據(jù)庫(kù)操作工具類  
  10.  *   
  11.  * @author daguangspecial@gmail.com  
  12.  *   
  13.  */   
  14. public class DBHelper {   
  15.     private static final String TAG = "DBDemo_DBHelper";// 調(diào)試標(biāo)簽   
  16.    
  17.     private static final String DATABASE_NAME = "dbdemo.db";// 數(shù)據(jù)庫(kù)名   
  18.     SQLiteDatabase db;   
  19.     Context context;//應(yīng)用環(huán)境上下文   Activity 是其子類   
  20.    
  21.     DBHelper(Context _context) {   
  22.         context = _context;   
  23.         //開啟數(shù)據(jù)庫(kù)   
  24.             
  25.         db = context.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE,null);   
  26.         CreateTable();   
  27.         Log.v(TAG, "db path=" + db.getPath());   
  28.     }   
  29.    
  30.     /**  
  31.      * 建表  
  32.      * 列名 區(qū)分大小寫?  
  33.      * 都有什么數(shù)據(jù)類型?  
  34.      * SQLite 3   
  35.      *  TEXT    文本  
  36.         NUMERIC 數(shù)值  
  37.         INTEGER 整型  
  38.         REAL    小數(shù)  
  39.         NONE    無類型  
  40.      * 查詢可否發(fā)送select ?  
  41.      */   
  42.     public void CreateTable() {   
  43.         try {   
  44.             db.execSQL("CREATE TABLE t_user (" +   
  45.                     "_ID INTEGER PRIMARY KEY autoincrement,"   
  46.                     + "NAME TEXT"    
  47.                     + ");");   
  48.             Log.v(TAG, "Create Table t_user ok");   
  49.         } catch (Exception e) {   
  50.             Log.v(TAG, "Create Table t_user err,table exists.");   
  51.         }   
  52.     }   
  53.     /**  
  54.      * 增加數(shù)據(jù)  
  55.      * @param id  
  56.      * @param uname  
  57.      * @return  
  58.      */   
  59.     public boolean save(String uname){   
  60.         String sql="";   
  61.         try{   
  62.             sql="insert into t_user values(null,'"+uname+"')";   
  63.             db.execSQL(sql);   
  64.             Log.v(TAG,"insert Table t_user ok");   
  65.             return true;   
  66.                
  67.         }catch(Exception e){   
  68.             Log.v(TAG,"insert Table t_user err ,sql: "+sql);   
  69.             return false;   
  70.         }   
  71.     }   
  72.     /**  
  73.      * 查詢所有記錄  
  74.      *   
  75.      * @return Cursor 指向結(jié)果記錄的指針,類似于JDBC 的 ResultSet  
  76.      */   
  77.     public Cursor loadAll(){   
  78.            
  79.         Cursor cur=db.query("t_user"new String[]{"_ID","NAME"}, null,nullnullnullnull);   
  80.            
  81.         return cur;   
  82.     }   
  83.       public void close(){   
  84.         db.close();   
  85.     }   
  86. }   

截圖:

截圖

責(zé)任編輯:佚名 來源: tuesdayhoho博客
相關(guān)推薦

2013-04-10 14:21:35

2012-02-29 10:18:31

SQLite3Android

2021-02-15 15:40:28

SQLite3數(shù)據(jù)庫(kù)

2011-07-04 17:26:00

Qt SQLite

2011-07-07 16:42:38

iPhone Sqlite3 數(shù)據(jù)庫(kù)

2023-10-17 08:31:03

SQLite數(shù)據(jù)庫(kù)

2013-04-09 16:47:19

iOS嵌入式數(shù)據(jù)庫(kù)SQLit

2018-07-05 11:30:56

數(shù)據(jù)庫(kù)瀏覽器IndexedDB

2024-02-19 00:00:00

SQLite3數(shù)據(jù)庫(kù)代碼

2013-06-14 09:54:04

Unity3D

2009-06-15 13:59:00

netbeans6.1入門教程

2011-07-04 11:38:06

MySQL

2012-03-06 12:59:11

iOS SQLite3iOSSQLite3

2020-07-31 08:07:54

Python開發(fā)數(shù)據(jù)庫(kù)

2011-06-16 09:53:25

Qt QML 教程

2020-09-18 09:15:22

數(shù)據(jù)庫(kù)Sqlite3進(jìn)階

2020-09-17 09:40:20

數(shù)據(jù)庫(kù)Sqlite3命令

2013-05-03 13:42:20

iOS開發(fā)SQLite3存儲(chǔ)讀取

2019-08-12 11:40:48

數(shù)據(jù)庫(kù)SQLite3數(shù)據(jù)類型

2010-01-27 18:33:16

Android SQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)