2012-06-18 3 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);

Для данных вставки используют insert() метод SQLiteDatabase.

Смежные вопросы