當前位置:首頁 » 數據倉庫 » android調用資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

android調用資料庫

發布時間: 2022-06-04 09:01:26

⑴ android 怎麼讀取資料庫中的數據

Android裡面sqlite的使用
使用步驟
1,創建一個SqliteOpenHelper的子類
public class MySqliteOpenHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1;//資料庫版本
 public static final String DATABASE_NAME="user.db";//資料庫文件 名
 public static final String TABLE_NAME="user";//表名

 //欄位名
 public static final String ID="id"; public static final String NAME="name"; public static final String AGE="age"; /** * 構造方法
 * @param context :上下文
 * @param name :數據文件名
 * @param factory :資料庫工廠 使用過程中傳null * @param version :資料庫版本 1 */ public MySqliteOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } /** * 當資料庫打開時調用
 * @param db 資料庫操作對象
 */ @Override public void onOpen(SQLiteDatabase db) { super.onOpen(db); System.out.println("-------onOpen"); } /** * 創建資料庫的方法
 * @param db 資料庫操作對象 CRUD ---CREATE READ UPDATE DELETE */ @Override public void onCreate(SQLiteDatabase db) { System.out.println("-------onCreate"); } /** *當資料庫的版本有提升時調用
 * @param db 資料庫操作對象
 * @param oldVersion 老版本號
 * @param newVersion 新版本號
 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //更新表
 //更新數據
 System.out.println("-------onUpgrade"); } /** * 當資料庫版本降低時調用 ---沒什麼用
 * @param db * @param oldVersion * @param newVersion */ @Override public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) { super.onDowngrade(db, oldVersion, newVersion); System.out.println("-------onUpgrade"); }}
onCreate方法:在第一次調用getReadableDatabase(),getWriteableDatabase()方法里調用【如果磁碟上沒有資料庫文件就會調用】
onOpen方法:在調用getReadableDatabase(),getWriteableDatabase()調用
onUpgrade()方法,當資料庫版本提升時調用
getWritableDatabase()得到可讀可寫的資料庫操作對象。如果內存不足,該方法會鎖定資料庫,並拋異常
getReadableDatabase()得到可讀寫的資料庫操作對象,,如果內存不足,資料庫就只能寫了
2,重寫onCreate方法
public MySqliteOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); }
@Override public void onCreate(SQLiteDatabase db) { // 創建表 String sql = "CREATE TABLE " + TABLE_NAME + "( " + _ID + " Integer primary key autoincrement," + NAME + " TEXT, " + PASSWORD + " TEXT)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
3,初始化資料庫
//創建資料庫
public void mysqlite(View view)
{
//創建 實現工具類
DBHelper dh = new DBHelper("test.db",1);
//連接資料庫 獲取資料庫實例
//getWritableDatabase() 數據寫滿會報錯
//getReadableDatabase() 數據寫滿不會報錯
SQLiteDatabase sd = dh.getWritableDatabase();
sd.close();
4,對資料庫進行CRUD
參考demo:
public class DBHelper { private final static String DATABASE_NAME = "TestDB2.db";// 資料庫文件名 private final static int VERSION = 1;// 資料庫版本 private final static String TABLE_NAME = "users";// 表名 private final static String _ID = "_id";// 編號 private final static String NAME = "name";// 用戶名欄位 private final static String PASSWORD = "password";// 用戶密碼 // 操作資料庫的類 private SQLiteDatabase database; MySQLiteOpenHepler hepler; // 寫一個內部類去處理資料庫的創建和版本的更新 class MySQLiteOpenHepler extends SQLiteOpenHelper { public MySQLiteOpenHepler(Context context) { super(context, DATABASE_NAME, null, VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 創建表 String sql = "CREATE TABLE " + TABLE_NAME + "( " + _ID + " Integer primary key autoincrement," + NAME + " TEXT, " + PASSWORD + " TEXT)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } public DBHelper(Context context) { hepler = new MySQLiteOpenHepler(context); database = hepler.getWritableDatabase(); } // 添加 public void insert(User user) { ContentValues values = new ContentValues(); values.put(NAME, user.getName()); values.put(PASSWORD, user.getPassword()); database.insert(TABLE_NAME, null, values); } // 修改 public void update(User user) { ContentValues values = new ContentValues(); values.put(NAME, user.getName()); values.put(PASSWORD, user.getPassword()); database.update(TABLE_NAME, values, _ID + "=?", new String[] { String.valueOf(user.getId()) }); } // 刪除 public void delete(int id) { database.delete(TABLE_NAME, _ID + "=?", new String[] { String.valueOf(id) }); }// 查詢一個 public User queryById(int id) { User u = null; Cursor cursor = database.query(TABLE_NAME, null, _ID + "=?", new String[] { String.valueOf(id) }, null, null, null); if (cursor.getCount() > 0) { cursor.moveToNext(); u = new User(cursor.getInt(0), cursor.getString(1), cursor.getString(2)); } return u; } }

⑵ android有哪幾種方式進行資料庫訪問

Android為數據存儲提供了多種方式,分別有如下幾種:
文件
SharedPreferences
SQLite資料庫
內容提供者(Content provider)
網路

使用文件進行數據存儲
首先給大家介紹使用文件如何對數據進行存儲,Activity提供了openFileOutput()方法可以用於把數據輸出到文件中,具體的實現過程與在J2SE環境中保存數據到文件中是一樣的。
復制代碼 代碼如下:

public class FileActivity extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
...
FileOutputStream outStream = this.openFileOutput("csdnt.txt", Context.MODE_PRIVATE);
outStream.write("CSDN".getBytes());
outStream.close();
}
}

openFileOutput()方法的第一參數用於指定文件名稱,不能包含路徑分隔符「/」 ,如果文件不存在,Android 會自動創建它。創建的文件保存在/data/data/<package name>/files目錄,如: /data/data/cn.csdn.action/files/csdn.txt ,通過點擊Eclipse菜單「Window」-「Show View」-「Other」,在對話窗口中展開android文件夾,選擇下面的File Explorer視圖,然後在File Explorer視圖中展開/data/data/<package name>/files目錄就可以看到該文件。
openFileOutput()方法的第二參數用於指定操作模式,有四種模式,分別為: Context.MODE_PRIVATE = 0
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2

Context.MODE_PRIVATE:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容,如果想把新寫入的內容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有許可權讀寫該文件。
MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取;MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。
如果希望文件被其他應用讀和寫,可以傳入:
openFileOutput("csdn.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);

android有一套自己的安全模型,當應用程序(.apk)在安裝時系統就會分配給他一個userid,當該應用要去訪問其他資源比如文件的時候,就需要userid匹配。默認情況下,任何應用創建的文件,sharedpreferences,資料庫都應該是私有的(位於/data/data/<package name>/files),其他程序無法訪問。除非在創建時指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE ,只有這樣其他程序才能正確訪問。

讀取文件內容
如果要打開存放在/data/data/<package name>/files目錄應用私有的文件,可以使用Activity提供openFileInput()方法。
FileInputStream inStream = this.getContext().openFileInput("csdn.txt");
Log.i("FileTest", readInStream(inStream));
readInStream()的方法請看本頁下面備注。

或者直接使用文件的絕對路徑:
File file = new File("/data/data/cn.csdn.action/files/csdn.txt");
FileInputStream inStream = new FileInputStream(file);
Log.i("FileTest", readInStream(inStream));
注意:上面文件路徑中的「cn.csdn.action」為應用所在包,當你在編寫代碼時應替換為你自己應用使用的包。
對於私有文件只能被創建該文件的應用訪問,如果希望文件能被其他應用讀和寫,可以在創建文件時,指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE許可權。

Activity還提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用於獲取/data/data/<package name>/cache目錄
getFilesDir()方法用於獲取/data/data/<package name>/files目錄

⑶ android 如何連接資料庫

這種方式通常連接一個外部的資料庫,第一個參數就是資料庫文件,這個資料庫不是當前項目中生成的,通常放在項目的Assets目錄下,當然也可以在手機內,如上面參數那個目錄,前提是那個文件存在且你的程序有訪問許可權。

另一種使用資料庫的方式是,自己創建資料庫並創建相應的資料庫表,參考下面的代碼:
public class DatabaseHelper extends SQLiteOpenHelper {
//構造,調用父類構造,資料庫名字,版本號(傳入更大的版本號可以讓資料庫升級,onUpgrade被調用)
public DatabaseHelper(Context context) {
super(context, DatabaseConstant.DATABASE_NAME, null, DatabaseConstant.DATABASE_VERSION);
}
//資料庫創建時調用,裡面執行表創建語句.
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(createVoucherTable());
}
//資料庫升級時調用,先刪除舊表,在調用onCreate創建表.
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + DatabaseConstant.TABLE_NAME);
onCreate(db);
}
//生成 創建表的SQL語句
private String createVoucherTable() {
StringBuffer sb = new StringBuffer();
sb.append(" CREATE TABLE ").append(DatabaseConstant.TABLE_NAME).append("( ").append(「ID」)
.append(" TEXT PRIMARY KEY, ")
.append(「USER_ID」).append(" INTEGER, ").append(「SMS_CONTENT」).append(" TEXT ) ");
return sb.toString();
}
} 繼承SQLiteOpenHelper並實現裡面的方法.

之後:
//得到資料庫助手類
helper
=
new
DatabaseHelper(context);
//通過助手類,打開一個可讀寫的資料庫連接
SQLiteDatabase
database
=
helper.getReadableDatabase();
//查詢表中所有記錄
database.query(DatabaseConstant.TABLE_NAME,
null,
null,
null,
null,
null,
null);

⑷ android如何訪問SQL資料庫

通過cmd可對資料庫進行訪問,現在開發android一般都用的eclipse+adt+sdk;進入cmd輸入adb
shell
,然後
cd
/data/data
再ls
顯示所有的包名,cd
到你的包名,然後
cd
databases
再ls
顯示你的資料庫名
,最後
sqlite3
資料庫名
就可以對資料庫進行操作了。

⑸ android應用是如何訪問資料庫的

電腦端寫web伺服器,連接資料庫,手機端用網路編程Socket。

⑹ 怎樣使Android程序調用mysql資料庫裡面的數據

一般並不建議直接在客戶端訪問資料庫
當然 如果你非要這做也沒有限制
就按普通的java程序那些些就可以了

引入驅動包

連接資料庫

讀寫數據

⑺ android怎麼連接sqlite資料庫

SQLite 一個非常流行的嵌入式資料庫,它支持 SQL 語言,並且只利用很少的內存就有很好的性能。此外它還是開源的,任何人都可以使用它。許多開源項目((Mozilla, PHP, Python)都使用了 SQLite.

Android 開發中使用 SQLite 資料庫
Activites 可以通過 Content Provider 或者 Service 訪問一個資料庫。下面會詳細講解如果創建資料庫,添加數據和查詢資料庫。
創建資料庫
Android 不自動提供資料庫。在 Android 應用程序中使用 SQLite,必須自己創建資料庫,然後創建表、索引,填充數據。Android 提供了 SQLiteOpenHelper 幫助你創建一個資料庫,你只要繼承 SQLiteOpenHelper 類,就可以輕松的創建資料庫。SQLiteOpenHelper 類根據開發應用程序的需要,封裝了創建和更新資料庫使用的邏輯。SQLiteOpenHelper 的子類,至少需要實現三個方法:
構造函數,調用父類 SQLiteOpenHelper 的構造函數。這個方法需要四個參數:上下文環境(例如,一個 Activity),資料庫名字,一個可選的游標工廠(通常是 Null),一個代表你正在使用的資料庫模型版本的整數。
onCreate()方法,它需要一個 SQLiteDatabase 對象作為參數,根據需要對這個對象填充表和初始化數據。
onUpgrage() 方法,它需要三個參數,一個 SQLiteDatabase 對象,一個舊的版本號和一個新的版本號,這樣你就可以清楚如何把一個資料庫從舊的模型轉變到新的模型。