android操作資料庫
『壹』 android studio怎麼進行資料庫操作
這個具體的話
你可以先看
SQLiteOpenHelper
這個android自帶
資料庫操作
幫助類
,裡面
很詳細
,基本的建庫,表,增刪改查
都在裡面
『貳』 Android一般採用什麼資料庫
Android一般用SQLite資料庫。
簡介:
SQLite,是一款輕型的資料庫,是遵守ACID的關系型資料庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC介面,同樣比起Mysql、PostgreSQL這兩款開源的世界著名資料庫管理系統來講,它的處理速度比他們都快。
『叄』 android如何訪問SQL資料庫
Android對數據來哭的訪問可以使用源ContentProvider, ContengResolver。只能訪問內部資料庫sqlite。常用的做法是用WebService來做網路資料庫連接,Android通過Http來訪問WebService,然後WebService提供對資料庫的相關操作。這樣就間接的實現了以Android操作管理SQL Server 資料庫。希望對你有所啟發或幫助,祝愉快!
『肆』 Android資料庫查詢操作
//fields要查詢的列,values對應的值
publicCursorquery(String[]fields,String[]values);
『伍』 Android客戶端怎麼與伺服器資料庫連接
不能與資料庫連接的
Android客戶端不能直接與伺服器資料庫連接。資料庫是需要非常大的內存,安裝之後有好幾G,連接資料庫要有一個像SQLServer里的webservice,這樣的一個橋梁來間接訪問。就是在伺服器運行一個服務端程序,該服務端程序通過接收來自android客戶端的指令,對資料庫進行操作。
客戶端的http請求可以通過 HttpClient類實現,在anddroid 4.0之後,客戶端的網路請求已經不被允許在主線程中運行,所以還需注意另開啟一個子線程進行網路請求。
(5)android操作資料庫擴展閱讀:
Android安全許可權機制:
Android默認設置下,所有應用都沒有許可權對其他應用、系統或用戶進行較大影響的操作。這其中包括讀寫用戶隱私數據(聯系人或電子郵件),讀寫其他應用文件,訪問網路或阻止設備待機等。安裝應用時,在檢查程序簽名提及的許可權,且經過用戶確認後,軟體包安裝器會給予應用許可權。
下載一款Android應用通常會要求如下的許可權:撥打電話、發送簡訊或彩信、修改/刪除SD卡上的內容、讀取聯系人的信息、讀取日程信的息,寫入日程數據、讀取電話狀態或識別碼、精確的(基於GPS)地理位置、模糊的(基於網路獲取)地理位置、創建藍牙連接、
還有對互聯網的完全訪問、查看網路狀態,查看WiFi狀態、避免手機待機、修改系統全局設置、讀取同步設定、開機自啟動、重啟其他應用、終止運行中的應用、設定偏好應用、震動控制、拍攝圖片等。
『陸』 如何進行Android資料庫操作
Android資料庫操作類實例
實體類:UserInfo.java
package my.db;
import java.io.Serializable;
import android.graphics.drawable.Drawable;
public class UserInfo implements Serializable {
public static final String ID = "_id";
public static final String USERID = "userId";
public static final String TOKEN = "token";
public static final String TOKENSECRET = "tokenSecret";
public static final String USERNAME = "userName";
public static final String USERICON = "userIcon";
private String id;
private String userId; // 用戶id
private String token;
private String tokenSecret;
private String userName;
private Drawable userIcon;
//getter and setter省略
}
SqliteHelper類:
package my.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class SqliteHelper extends SQLiteOpenHelper{
//用來保存UserID、Access Token、Access Secret的表名
public static final String TB_NAME= "users";
public SqliteHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
}
//創建表
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL( "CREATE TABLE IF NOT EXISTS "+
TB_NAME+ "("+
UserInfo. ID+ " integer primary key,"+
UserInfo. USERID+ " varchar,"+
UserInfo. TOKEN+ " varchar,"+
UserInfo. TOKENSECRET+ " varchar,"+
UserInfo. USERNAME+ " varchar,"+
UserInfo. USERICON+ " blob"+
")"
);
Log. e("Database" ,"onCreate" );
}
//更新表
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL( "DROP TABLE IF EXISTS " + TB_NAME );
onCreate(db);
Log. e("Database" ,"onUpgrade" );
}
//更新列
public void updateColumn(SQLiteDatabase db, String oldColumn, String newColumn, String typeColumn){
try{
db.execSQL( "ALTER TABLE " +
TB_NAME + " CHANGE " +
oldColumn + " "+ newColumn +
" " + typeColumn
);
} catch(Exception e){
e.printStackTrace();
}
}
}
CRUD類DataHelper:
package my.db;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.util.Log;
public class DataHelper {
// 資料庫名稱
private static String DB_NAME = "weibo.db";
// 資料庫版本
private static int DB_VERSION = 2;
private SQLiteDatabase db;
private SqliteHelper dbHelper;
public DataHelper(Context context) {
dbHelper = new SqliteHelper(context, DB_NAME, null, DB_VERSION );
db = dbHelper.getWritableDatabase();
}
public void Close() {
db.close();
dbHelper.close();
}
// 獲取users表中的UserID、Access Token、Access Secret的記錄
public List<UserInfo> GetUserList(Boolean isSimple) {
List<UserInfo> userList = new ArrayList<UserInfo>();
Cursor cursor = db.query(SqliteHelper. TB_NAME, null, null , null, null,
null, UserInfo. ID + " DESC");
cursor.moveToFirst();
while (!cursor.isAfterLast() && (cursor.getString(1) != null )) {
UserInfo user = new UserInfo();
user.setId(cursor.getString(0));
user.setUserId(cursor.getString(1));
user.setToken(cursor.getString(2));
user.setTokenSecret(cursor.getString(3));
if (!isSimple) {
user.setUserName(cursor.getString(4));
ByteArrayInputStream stream = new ByteArrayInputStream(cursor.getBlob(5));
Drawable icon = Drawable.createFromStream(stream, "image");
user.setUserIcon(icon);
}
userList.add(user);
cursor.moveToNext();
}
cursor.close();
return userList;
}
// 判斷users表中的是否包含某個UserID的記錄
public Boolean HaveUserInfo(String UserId) {
Boolean b = false;
Cursor cursor = db.query(SqliteHelper. TB_NAME, null, UserInfo.USERID
+ "=?", new String[]{UserId}, null, null, null );
b = cursor.moveToFirst();
Log. e("HaveUserInfo", b.toString());
cursor.close();
return b;
}
// 更新users表的記錄,根據UserId更新用戶昵稱和用戶圖標
public int UpdateUserInfo(String userName, Bitmap userIcon, String UserId) {
ContentValues values = new ContentValues();
values.put(UserInfo. USERNAME, userName);
// BLOB類型
final ByteArrayOutputStream os = new ByteArrayOutputStream();
// 將Bitmap壓縮成PNG編碼,質量為100%存儲
userIcon.compress(Bitmap.CompressFormat. PNG, 100, os);
// 構造SQLite的Content對象,這里也可以使用raw
values.put(UserInfo. USERICON, os.toByteArray());
int id = db.update(SqliteHelper. TB_NAME, values, UserInfo.USERID + "=?" , new String[]{UserId});
Log. e("UpdateUserInfo2", id + "");
return id;
}
// 更新users表的記錄
public int UpdateUserInfo(UserInfo user) {
ContentValues values = new ContentValues();
values.put(UserInfo. USERID, user.getUserId());
values.put(UserInfo. TOKEN, user.getToken());
values.put(UserInfo. TOKENSECRET, user.getTokenSecret());
int id = db.update(SqliteHelper. TB_NAME, values, UserInfo.USERID + "="
+ user.getUserId(), null);
Log. e("UpdateUserInfo", id + "");
return id;
}
// 添加users表的記錄
public Long SaveUserInfo(UserInfo user) {
ContentValues values = new ContentValues();
values.put(UserInfo. USERID, user.getUserId());
values.put(UserInfo. TOKEN, user.getToken());
values.put(UserInfo. TOKENSECRET, user.getTokenSecret());
Long uid = db.insert(SqliteHelper. TB_NAME, UserInfo.ID, values);
Log. e("SaveUserInfo", uid + "");
return uid;
}
// 添加users表的記錄
public Long SaveUserInfo(UserInfo user, byte[] icon) {
ContentValues values = new ContentValues();
values.put(UserInfo. USERID, user.getUserId());
values.put(UserInfo. USERNAME, user.getUserName());
values.put(UserInfo. TOKEN, user.getToken());
values.put(UserInfo. TOKENSECRET, user.getTokenSecret());
if(icon!= null){
values.put(UserInfo. USERICON, icon);
}
Long uid = db.insert(SqliteHelper. TB_NAME, UserInfo.ID, values);
Log. e("SaveUserInfo", uid + "");
return uid;
}
// 刪除users表的記錄
public int DelUserInfo(String UserId) {
int id = db.delete(SqliteHelper. TB_NAME,
UserInfo. USERID + "=?", new String[]{UserId});
Log. e("DelUserInfo", id + "");
return id;
}
public static UserInfo getUserByName(String userName,List<UserInfo> userList){
UserInfo userInfo = null;
int size = userList.size();
for( int i=0;i<size;i++){
if(userName.equals(userList.get(i).getUserName())){
userInfo = userList.get(i);
break;
}
}
return userInfo;
}
}
『柒』 安卓讀取資料庫的數據怎麼操作
public class DBHelper extends SQLiteOpenHelper {
public static final String TB_NAME = "mydemo_user";
public static final String ID = "_id";
public static final String NAME = "username";
public static final String PASSWORD = "passname";
public static final String ISCHECK = "ischecked";
//當前版本
public static int version = 1;
/**
* 構造函數
* @param context Context類型,上下文對象。
* @param name String類型,資料庫的名稱
* @param factory CursorFactory類型
* @param version int類型,資料庫版本
*/
public DBHelper(Context context, String name, CursorFactory factory,int version) {
super(context, name, factory, version);
this.getWritableDatabase();
}
public void Close() {
this.getWritableDatabase().close();
}
/**
* 創建資料庫
*/
public void onCreate(SQLiteDatabase db) {
db.beginTransaction();
try{
db.execSQL("CREATE TABLE IF NOT EXISTS "
+ TB_NAME + " ("
+ ID + " INTEGER PRIMARY KEY,"
+ NAME + " VARCHAR,"
+ PASSWORD + " VARCHAR,"
+ ISCHECK + " VARCHAR)");
db.setTransactionSuccessful();
}catch (Exception e) {
} finally {
db.endTransaction();//此時不能關閉資料庫,不然創建資料庫完成後,資料庫不能使用
}
}
/**
* 刪除資料庫
*/
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TB_NAME);
onCreate(db);
}
/**
* 添加新用戶
* @param name
* @param number
*/
public void addUser(String username, String password,String isChecked) {
ContentValues values = new ContentValues();
values.put(DBHelper.NAME, username);
values.put(DBHelper.PASSWORD, password);
values.put(DBHelper.ISCHECK, isChecked);
this.getWritableDatabase().insert(DBHelper.TB_NAME, DBHelper.ID, values);
}
/**
* 刪除單個用戶
* @param id
*/
public void delUser(int id) {
this.getWritableDatabase().delete(DBHelper.TB_NAME, DBHelper.ID + " = " + id, null);
}
/**
* 修改單個用戶
* @param id
*/
public void updateUser(int id,String username, String password,String isChecked) {
ContentValues values = new ContentValues();
values.put(DBHelper.NAME, username);
values.put(DBHelper.PASSWORD, password);
values.put(DBHelper.ISCHECK, isChecked);
String where = DBHelper.ID+"=?";//設置條件
String[] whereValue = {Integer.toString(id)};//設置條件中的參數
this.getWritableDatabase().update(DBHelper.TB_NAME, values, where, whereValue);
}
/**
* 刪除多個用戶
*/
public void delAllUser() {
this.getWritableDatabase().delete(DBHelper.TB_NAME, null, null);
}
/**
* 查詢
* @param username
* @return
*/
public List<Users> queryUser(String username){
List<Users> data = new ArrayList<Users>();
String[] columns = { DBHelper.ID, DBHelper.NAME, DBHelper.PASSWORD,DBHelper.ISCHECK };
String[] parms = { username };
String where = DBHelper.NAME + "=?";// 設置條件
Cursor result=null;
if(username!=null){
result = this.getWritableDatabase().query(DBHelper.TB_NAME,columns, where, parms, null, null, null);
}else{
result = this.getWritableDatabase().query(DBHelper.TB_NAME,columns, null, null, null, null, null);
}
result.moveToFirst();//移動到第一行
while (!result.isAfterLast()) {//遍歷數據
Users user = new Users(result.getInt(0), result.getString(1),result.getString(2), result.getString(3));
data.add(user);
result.moveToNext();
}
result.close();
return data;
}
}
『捌』 如何操作android中的資料庫
Android 不自動提供資料庫。在 Android 應用程序中使用 SQLite,必須自己創建資料庫,然後創建表、索引內,填充數據。容Android 提供了 SQLiteOpenHelper 幫助你創建一個資料庫,你只要繼承 SQLiteOpenHelper 類,就可以輕松的創建資料庫。SQLiteOpenHelper 類根據開發應用程序的需要,封裝了創建和更新資料庫使用的邏輯。SQLiteOpenHelper 的子類,至少需要實現三個方法:
構造函數,調用父類 SQLiteOpenHelper 的構造函數
onCreate()方法;// TODO 創建資料庫後,對資料庫的操作
onUpgrage()方法。// TODO 更改資料庫版本的操作
當你完成了對資料庫的操作(例如你的 Activity 已經關閉),需要調用 SQLiteDatabase 的 Close() 方法來釋放掉資料庫連接。