android資料庫編程
1. Android創建資料庫需要做哪些事情
創建一個類繼承資料庫幫助類,在其中寫資料庫創建,更新方法
2. 安卓代碼怎麼創建資料庫
android 中的資料庫操作 android 中的應用開發很難避免不去使用資料庫, 聊聊 android 中的數據 庫操作,我發給你 word 貼不下
一、android 內的資料庫的基礎知識介紹
1.用了什麼資料庫
android 中採用的資料庫是 sqlite 這個輕量級的嵌入式開源資料庫,它是用 c 語言構建的。相關簡介可以從鏈接查看。
2.資料庫基本知識觀花
對於一些和我一樣還沒有真正系統學習資料庫技術的同學來說,把 SQL92 標 准中的一些基本概念、基本語句快速的了解一下,是很有必要的,這樣待會用 Android 的 database 相關方法去執行一些資料庫語句時就不會茫然了。
①資料庫的基本結構——表格
表格是資料庫中儲存資料的基本架構。表格被分為欄位 (column) 及列位 (row)。每 一列代表一筆資料,而每一欄代表一筆資料的一部份。舉例來說,如果我們有一個記載顧客 資料的表格,那欄位就有可能包括姓、名、地址、城市、國家、生日..等等。每一個表格 . 擁有一個獨一無二的名字(Table Name)以便能夠讓用戶定位到它上面。一個典型的表格結 構如下:
Store_Information 表格
store_name Sales Date Los Angeles $1500 Jan-05-1999 San Diego $250 Jan-07-1999 Los Angeles $300 Jan-08-1999 Boston $700 Jan-08-1999 該表格的表格名字為 Store_Information, 一共有三個欄位, 分別為 store_name , Sales , Data , 已經錄入了四筆數據所以有四個列位。
②關於數據類型
和其他的資料庫不同的是,sqlite 是無類型的。也就是當你創建一個表格時,無需對 每一個欄位要存儲的數據的類型進行聲明,當你在給表格增加數據條目時,sqlite 會自動找 到存入的數據的類型。
SQLite 允許忽略數據類型,但是,仍然建議在 Create Table 語句中指定數據類型, 因為數據類型有利於增強程序的可讀性。SQLite 支持常見的數據類型,如 VARCHAR、 NVARCHAR、TEXT、INTEGER、FLOAT、BOOLEAN、CLOB、BLOB、TIMESTAMP、 NUMERIC、VARYING、CHARACTER、NATl0NAI, VARYINGCHARACTER。這些數據類 型都是 SQL92 標准中規定的標准資料庫數據類型,想要有更近一步了解,請參看下錶。
SQL 資料庫數據類型詳解 數據類型 類型 描 述 bit 整型 bit 數據類型是整型,其值只能是 0、1 或空值。這種數據類型用於存儲只有兩 種可能值的數據,如 Yes 或 No、True 或 Fa lse 、On 或 Off int 整型 int 數據類型可以存儲從- 231(-2147483648)到 231 (2147483 647)之間的整數。存 儲到資料庫的幾乎所有數值型的數據都可以用這種數據類型。 這種數據類型在資料庫里佔用 4 個位元組 smallint 整型 smallint 數據類型可以存儲從- 215(-32768)到 215(32767)之間的整數。這種 數據類型對存儲一些常限定在特定范圍內的數值型數據非常有用。 這種數據類型在資料庫里 佔用 2 位元組空間 tinyint 整型 tinyint 數據類型能存儲從 0 到 255 之間的整數。 它在你只打算存儲有限數目 的數值時很有用。 這種數據類型在資料庫中佔用 1 個位元組 numeric 精確數值型 numeric 數據類型與 decimal 型相同 decimal 精確數值型 decimal 數據類型能用來存儲從-1038-1 到 1038-1 的固定精度和范圍 的數值型數據。使用這種數據類型時,必須指定范圍和精度。 范圍是小數點左右所能存儲
3. android本地資料庫存儲怎麼編寫
java">創建資料庫的類
{
publicstaticfinalStringDB_NAME="test.db"; //資料庫名稱
publicstaticfinalintDB_VERSION=1; //資料庫版本號
publicDBOpenHelper(Contextcontext){
super(context,DB_NAME,null,DB_VERSION);
}
@Override
publicvoidonCreate(SQLiteDatabasedb){
//第一次調用getWritableDatabase();或getReadableDatabase();時會執行
//這個方法通常用來創建表,和初始數據的
}
@Override
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){ //當資料庫版本號更新時執行的方法
}
}
以下是獲取資料庫實體的方法
DBOpenHelperdbHelper=newDBOpenHelper(context);
SQLiteDatabasedb=dbHelper.getWritableDatabase();
SQLiteDatabasedb=dbHelper.getReadableDatabase();
4. android資料庫創建後怎麼使用
以編程的方式使用資料庫
package com.wshouyou.database;
import android.os.Bundle;
import android.app.Activity;
import android.database.Cursor;
import android.view.Menu;
import android.widget.Toast;
public class DatabaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DBAdapter db = new DBAdapter(this);
//add a contact
/*db.open();
long id = db.insertContact("junli", "[email protected]");
id = db.insertContact("juan zhan", "[email protected]");
db.close();*/
//get all contacts
/*db.open();
Cursor c = db.getAllContacts();
if (c.moveToFirst())
{
do {
DisplayContact(c);
}while (c.moveToNext());
}
db.close();*/
//get a contact
/*db.open();
Cursor c = db.getContact(2);
if (c.moveToFirst())
DisplayContact(c);
else
Toast.makeText(this, "No contact found!", Toast.LENGTH_SHORT).show();
db.close();*/
//update contact
/*db.open();
if ( db.updateContact(1, "Wei-Meng Lee", "[email protected]") )
Toast.makeText(this, "Update successful!", Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "Update failed!", Toast.LENGTH_SHORT).show();
db.close();*/
//delete a contact
db.open();
if (db.deleteContact(1))
Toast.makeText(this, "Delete successful!", Toast.LENGTH_LONG).show();
else
Toast.makeText(this, "Delete failed!", Toast.LENGTH_LONG).show();
db.close();
}
public void DisplayContact(Cursor c)
{
Toast.makeText(this ,
"id: "+c.getString(0) + "\n" +
"Name: "+c.getString(1) + "\n"+
"Email: "+c.getString(2),
Toast.LENGTH_SHORT).show();
}
}
操作資料庫。
5. android編程:怎麼判斷 【資料庫】 中的【表】是否有數據
先查找啊,查找整個表,判斷有沒有數據,沒有數據在查詢
Cursor cursor2=db.rawQuery("select * from news_inf",null);
if(cursor.getCount()==0)
{
//執行插入語句
}
6. 安卓編程資料庫的應用
把一個web伺服器上的資料庫。寫兩個程序,一個添加和更新(和選擇,所以你可以選擇記錄更新)功能,另一個只有添加功能啟用。(你寫的主要主管應用程序,然後禁用監控功能,按鈕,顯示器,實地工作者應用。)每個用戶連接到網站,使用這個應用程序,輸入/修改數據。這是一個標準的資料庫介面,只是使用android應用程序而不是桌面程序,用戶界面。
7. android創建資料庫的途徑有哪些
創建資料庫的方法有兩種,使用向導創建資料庫,使用菜單創建資料庫和創建空資料庫;使用向導創建資料庫是一種簡單便捷的方法。
在物理上,資料庫的建設要遵循實際情況。即在邏輯上建立一個整體的空間數據車、框架統一設計的同時,各級比例尺和不同數據源的數據分別建成子庫,由開發的平台管理軟體來統一協調與調度。
8. android 資料庫編程:一個TextView顯示所查詢的資料庫里的內容
你先准備好資料庫
你要看下對於資料庫的操作(增刪改查),知道如何進行查詢
上面的操作查詢出來了,你就好修改
你可以借鑒這篇文章:http://www.eoeandroid.com/thread-96456-1-1.html
9. android 資料庫編程
創建資料庫的時候寫錯了。String sql = "create table "+TABLE_NAME+"("
+ID+" integer primary key autoincrement ,"
+NAME+"varchar,"
+PHONE+"varchar"
+QQ+"varchar"
+ADDRESS+"varchar)";
db.execSQL(sql);
10. 如何進行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;
}
}