Android 개발SQLite 사용법
76779 단어 안 드 로 이 드 개발sqlite기교.사용 방법
SQLite 는 경량급,삽입 식,관계 형 데이터베이스 로 현재 아이 폰,안 드 로 이 드 등 휴대 전화 시스템 에서 사용 되 고 있 으 며 SQLite 는 이식 성 이 좋아 사용 하기 쉽 고 작고 효율 적 이 며 믿 을 만하 다.SQLite 는 하나의 프로 세 스 가 아 닌 같은 프로 세 스 공간 을 사용 합 니 다.외부 에서 볼 때 RDBMS 는 아니 지만 프로 세 스 내부 에 서 는 완전한 데이터베이스 엔진 입 니 다.
안 드 로 이 드 에서 SQLite 데이터 베 이 스 를 조작 해 야 할 때 SQLiteOpenHelper 대상 을 얻어 야 합 니 다.SQLiteOpenHelper 는 추상 적 인 유형 입 니 다.사용 자 는 이 종 류 를 계승 하고 이 유형의 방법 을 실현 해 야 합 니 다.
1.SQLiteOpenHelper 를 계승 한 후에 다음 과 같은 두 가지 방법 을 가지 게 되 었 습 니 다.
◆getReadable Database()에서 검색 데이터 베 이 스 를 만 들 거나 엽 니 다.
◆getWritable Database()작성 가능 한 데이터 베 이 스 를 만 들 거나 엽 니 다.
◆이들 은 모두 SQLiteDatabase 대상 으로 돌아 가 고 사용자 가 얻 은 SQLiteDatabase 대상 을 통 해 후속 작업 을 한다.
2.또한 사용 자 는 다음 과 같은 리 셋 함 수 를 덮어 쓰 고 데이터 베 이 스 를 조작 할 때 다음 과 같은 방법 으로 리 셋 할 수 있 습 니 다.
◆onCreate(SQLiteDatabase):데이터 베 이 스 를 처음 만 들 때 이 방법 을 사용 합 니 다.보통 이 방법 에서 데이터 베 이 스 를 만 듭 니 다.
◆onUpgrade(SQLiteDatabase,int,int):데이터 베 이 스 를 수정 해 야 할 때 안 드 로 이 드 시스템 은 이 방법 을 주동 적 으로 호출 합 니 다.일반적으로 우 리 는 이 방법 에서 데이터 베 이 스 를 삭제 하고 새로운 데이터 베 이 스 를 만 듭 니 다.물론 다른 조작 을 해 야 하 는 지 여 부 는 응용 프로그램의 수요 에 달 려 있 습 니 다.
◆onOpen(SQLiteDatabase):데이터 베 이 스 를 열 때 리 셋 함수 로 일반적으로 사용 되 지 않 는 다.
주의 가 필요 하 다
1.SQLiteOepnHelper 의 하위 클래스 에 다음 과 같은 구조 함수 가 있어 야 합 니 다.
- public DatabaseHelper(Context context, String name, CursorFactory factory,
- int version) {
- // super
- super(context, name, factory, version);
- }
-
편 의 를 위해 다른 구조 함 수 를 만 들 수도 있 고 두 개의 매개 변수 나 세 개의 매개 변 수 를 포함 합 니 다.
2.함수 Public void onCreate(SQLiteDatabase db)는 getReadableDatabase()또는 getWritableDatabase()가 처음으로 데이터 베 이 스 를 만 들 었 을 때 실 행 됩 니 다.실제로 SQLiteDatabse 대상 을 처음 얻 었 을 때 이 방법 을 호출 합 니 다.
- public void onCreate(SQLiteDatabase db) {
- System.out.println("create a Database");
- //execSQL SQL
- db.execSQL("create table user(id int,name varchar(20))");
- }
-
데이터베이스 테이블 에 기록 을 삽입 할 때,먼저 데 이 터 를 하나의 ContentValues 에 포함 시 키 고,이 대상 에 키 쌍 을 삽입 해 야 한다.그 중에서 키 는 열 이름 이 고,값 은 이 열 에 삽입 하고 자 하 는 값 이 며,값 은 데이터베이스 에 있 는 데이터 형식 과 일치 해 야 한다.이 어 Databasehelper 의 getWritable Database 방법 을 호출 하여 기록 할 수 있 는 Databasehelper 대상 을 얻 은 다음 insert 에 기록 합 니 다.DatabaseHelper 대상 의 insert,update 또는 query 방법 을 호출 하 는 매개 변수 전달 에 주의 하 십시오.
또한 query 방법 을 실행 한 후 되 돌아 오 는 것 은 Cursor 커서 입 니 다.커서 는 처음에 집합 에서 첫 줄 의 이전 줄 을 기록 하 는 것 을 가리 키 기 때문에 먼저 cursor.next()를 호출 하여 커서 를 집합 을 기록 하 는 첫 줄 로 이동 시 킨 다음 데 이 터 를 가 져 오 면 됩 니 다.
자바 코드
- public class SQLiteActivity extends Activity {
- /** Called when the activity is first created. */
- private Button createButton;
- private Button insertButton;
- private Button updateButton;
- private Button updateRecordButton;
- private Button queryButton;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- createButton = (Button)findViewById(R.id.createDatabase);
- updateButton = (Button)findViewById(R.id.updateDatabase);
- insertButton = (Button)findViewById(R.id.insert);
- updateRecordButton = (Button)findViewById(R.id.update);
- queryButton = (Button)findViewById(R.id.query);
- createButton.setOnClickListener(new CreateListener());
- updateButton.setOnClickListener(new UpdateListener());
- insertButton.setOnClickListener(new InsertListener());
- updateRecordButton.setOnClickListener(new UpdateRecordListener());
- queryButton.setOnClickListener(new QueryListener());
- }
- class CreateListener implements OnClickListener{
- @Override
- public void onClick(View v) {
- // DatabaseHelper
- DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db");
- // DatabaseHelper getReadableDatabase() , getWritableDatabase() , ,
- SQLiteDatabase db = dbHelper.getReadableDatabase();
- }
- }
- class UpdateListener implements OnClickListener{
-
- @Override
- public void onClick(View v) {
- DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db",2);
- SQLiteDatabase db = dbHelper.getReadableDatabase();
- }
-
- }
- class InsertListener implements OnClickListener{
-
- @Override
- public void onClick(View v) {
- // ContentValues
- ContentValues values = new ContentValues();
- // , , ,
- values.put("id", 1);
- values.put("name","zhangsan");
- DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db",2);
- SQLiteDatabase db = dbHelper.getWritableDatabase();
- // insert ,
- db.insert("user", null, values);
- }
- }
- // SQL update
- //UPDATE table_name SET XXCOL=XXX WHERE XXXXCOL=XX...
- class UpdateRecordListener implements OnClickListener{
-
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- // SQLiteDatabase
- DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db");
- SQLiteDatabase db = dbHelper.getWritableDatabase();
- ContentValues values = new ContentValues();
- values.put("name", "zhangsanfeng");
- //
- // ContentValeus
- // where
- db.update("user", values, "id=?", new String[]{"1"});
- }
- }
- class QueryListener implements OnClickListener{
-
- @Override
- public void onClick(View v) {
- System.out.println("aaa------------------");
- Log.d("myDebug", "myFirstDebugMsg");
-
- DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db");
- SQLiteDatabase db = dbHelper.getReadableDatabase();
- Cursor cursor = db.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, null, null, null);
- while(cursor.moveToNext()){
- String name = cursor.getString(cursor.getColumnIndex("name"));
- System.out.println("query--->" + name);
- }
- }
- }
-
- }
Android SQLite
Android SQLite ! 。 Android SQLite , 。
SQLite !
data/data/< >/databases/
1:Android SQLite
- Context.createDatabase(String name,int version ,
int mode,CursorFactory factory)
생 성 에 성공 하지 못 하면 FileNotFound Exception 이상 던 지기
자바 코드
- SQLiteDatabase DataBase=this.openOrCreateDatabase
("DataBase.db",
- MODE_PRIVATE,
- new CursorFactory(){
- // , Database, MODE_PRIVATE
- public Cursor newCursor(SQLiteDatabase db,
- SQLiteCursorDriver masterQuery,
- String editTable,
- SQLiteQuery query){
- return null;
- }
- });
- SQLiteDatabase DataBase=this.openOrCreateDatabase
("DataBase.db",
- MODE_PRIVATE,
- new CursorFactory(){
- // , Database, MODE_PRIVATE
- public Cursor newCursor(SQLiteDatabase db,
- SQLiteCursorDriver masterQuery,
- String editTable,
- SQLiteQuery query){
- return null;
- }
- });
2:Android SQLite 데이터베이스 에 존재 하 는 데이터베이스 열기
- Context.openDatabase(String file,CursorFactory factory);
존재 하지 않 는 데이터 베 이 스 를 열 려 면 코드 는 다음 과 같 습 니 다.
자바 코드
- // :DataBase , .db
- SQLiteDatabase DataBase=this.openOrCreateDatabase
("DateBase.db",
- MODE_PRIVATE,
- null);
- //
- try
- {
- //
- db = this.openDatabase("DateBase.db", null);
- }
- catch (FileNotFoundException e)
- {
- try
- {
- //
- }
- catch (FileNotFoundException e)
- {
- db = null;
- }
- }
- // :DataBase , .db
- SQLiteDatabase DataBase=this.openOrCreateDatabase
("DateBase.db",
- MODE_PRIVATE,
- null);
- //
- try
- {
- //
- db = this.openDatabase("DateBase.db", null);
- }
- catch (FileNotFoundException e)
- {
- try
- {
- //
- }
- catch (FileNotFoundException e)
- {
- db = null;
- }
- }
3:Android SQLite 데이터베이스 닫 기 데이터베이스
- Java
- //
- DataBase.close();
- //
- DataBase.close();
4:Android SQLite 데이터베이스 에서 지정 한 데이터베이스 삭제
자바 코드
- this.deleteDatabase("Database.db");
- this.deleteDatabase("Database.db");
5:Android SQLite 데이터베이스 에서 SQL 명령 을 실행 합 니 다.
- SQLiteDatabase.execSQL(String sql);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android 개발 에 사용 되 는 MT 난수 생 성기이전의 AS3 이식 판 을 약간 고 쳐 서 현재 jkanji 에 사용 하고 있 습 니 다.테스트 를 좀 해 봤 는데 버그 가 별로 없 는 것 같 아 요.가장 간단 한 동전 테스트 를 해 봤 는데 같은 씨앗 의 경우 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.