2012-06-18 38 views
5

我想在android應用程序中創建阿拉伯語數據庫並希望看到我如何實現這一目標?我知道我將不得不做編碼和東西。但我想知道是否有人真的試圖創建非英文數據庫並幫助我做最好的方法。插入並選擇阿拉伯語數據Android SQLite

+0

不能ü阿拉伯文數據轉換成英語,並可以存儲在數據庫中?我只是猜測這.... – Aamirkhan

回答

1

我可以從日食做沒有編碼,如果我將文件保存爲UTF-8,通常寫阿拉伯語數據..

3

所以對於創建SQLite最好的方法是使用SQLiteOpenHelper,並創建自己的類,從SQLiteOpenHelper延伸,實現onCreate(),方法和onUpgrade()方法。

示例如何創建數據庫:

public class DatabaseHandler extends SQLiteOpenHelper { 

    private static final String DATABASE_NAME = "basic_login_system_database"; 
    protected static final String USER_TABLE_NAME = "User"; 
    protected static final int DATABASE_VERSION = 1; 

    protected static final String KEY_ID = "id"; 
    protected static final String KEY_NAME = "name"; 
    protected static final String KEY_SURNAME = "surname"; 
    protected static final String KEY_PASSWORD = "password"; 
    protected static final String KEY_EMAIL = "email"; 
    protected static final String KEY_ADDRESS = "adress"; 
    protected static final String KEY_AGE = "age"; 


    public DatabaseHandler(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    }  

    public void onCreate(SQLiteDatabase db) { 
     String CREATE_USER_TABLE = "CREATE TABLE " + USER_TABLE_NAME + "(" 
       + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
       + KEY_NAME + " TEXT NOT NULL, " 
       + KEY_SURNAME + " TEXT NOT NULL, " 
       + KEY_PASSWORD + " TEXT NOT NULL, " 
       + KEY_EMAIL + " TEXT UNIQUE NOT NULL, " 
       + KEY_ADDRESS + " TEXT, " 
       + KEY_AGE + " TEXT" + ")"; 
     db.execSQL(CREATE_USER_TABLE); 
    } 

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     String DELETE_USER_TABLE = "DROP TABLE IF EXISTS " + USER_TABLE_NAME; 
     db.execSQL(DELETE_USER_TABLE); 
     onCreate(db);  
    } 
} 

而且你必須爲Arabic字符集編碼,因爲含蓄是設置utf-8

private static final String ENCODING_SETTING = "PRAGMA encoding ='windows-1256'";

,你們便在onOpen()方法對其進行設置。

@Override 
public void onOpen(SQLiteDatabase db) { 
    if (!db.isReadOnly()) { 
     db.execSQL(ENCODING_SETTING); 
    } 
} 

然後從數據庫中檢索數據只使用Cursor與方法rawQuery()query()

實施例:Cursor c = db.raQuery(SELECT_STATEMENT, null);

對於插入數據使用的SQLiteDatabaseinsert()方法。