Friday, 19-04-2024, 10:39 AM
AFgame                                               

Chi sẻ kiến thức lập trình - Các demo và ứng dụng mở


Welcome Guest
Menu
Demo - HTML Hack [3]
Java - Swing [5]
Java - 2D Graphics [1]
Java - IO [3]
Java - Audio [1]
Java - Lập trình mạng [2]
Java - Trí tuệ nhân tạo [7]
Java - Lập Trình Nâng Cao [5]
Java - BT Lập trình mạng [6]
Java - Common [2]
C# [1]
Android [15]
Database [1]
Jsp/Servlet [5]
Application [1]
Tài liệu [3]
Thành viên đăng bài [0]
Nơi dành cho thành viên đăng các bài viết hoàn chỉnh hoặc các câu hỏi
Search
Statistics

Total online: 1
Guests: 1
Users: 0
Cơ bản sqllite
28-02-2013, 4:43 PM

Nơi chứa cơ sở dữ liệu

Nơi chứa csdl thường nằm ở package chứa file chạy chính của chương trình

Ví dụ :


 

·         MainActivity là file để chạy android do đó bạn có thể tìm thấy nơi lưu csdl ở : data/data/com.example.test

·         Sử dụng file explorer trong eclipse để xem

·         Vào window/Show view/Other/Android/File Explorer

·         Vì chưa có csdl nên bạn không thể thấy được. Nếu có csdl thì sẽ tìm thấy ở data/data/com.example.test/databases/



Tạo lớp Database trong package Model

 

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import android.util.Log;

 

public class DataBase extends SQLiteOpenHelper {

     

        public static final String TABLE_COMMENTS = "comments";

        public static final String COLUMN_ID = "_id";

        public static final String COLUMN_COMMENT = "comment";

 

        private static final String DATABASE_NAME = "commments.db";

        private static final int DATABASE_VERSION = 1;

       

        private static final String DATABASE_CREATE = "create table "

            + TABLE_COMMENTS + "(" + COLUMN_ID

            + " integer primary key autoincrement, " + COLUMN_COMMENT

            + " text not null);";

 

        public DataBase(Context context) {

            super(context, DATABASE_NAME, null, DATABASE_VERSION);

        }

       

        public void createDataBase(){

              this.getReadableDatabase();

        }

 

      @Override

      public void onCreate(SQLiteDatabase db) {

            db.execSQL(DATABASE_CREATE);

      }

 

      @Override

      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

            Log.d("onUpgrade", "Upgrade");

      }

 

public void createComments() {

           

            SQLiteDatabase database = getReadableDatabase();

           

            ContentValues values = new ContentValues();

            values.put(COLUMN_COMMENT, "oyeha");

           

            database.insert(TABLE_COMMENTS, null,values);

           

      }

 

public ArrayList<String> getAll(){

            SQLiteDatabase database = getReadableDatabase();

            ArrayList<String> list = new ArrayList<String>();

            Cursor c = database.rawQuery("SELECT * FROM Comments", null);

           

            while(c.moveToNext()){

                  String comment = c.getString(c.getColumnIndex("comment"));

                  list.add(comment);

            }

            c.close();

           

            return list;     

      }

 

}

 

Lớp layout giao diện

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity" >

 

    <Button

        android:id="@+id/button1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_alignParentTop="true"

        android:layout_marginLeft="23dp"

        android:layout_marginTop="20dp"

        android:text="Button"

        android:onClick="createDataBase"/>

 

 

</RelativeLayout>

Lớp hiển thị giao diện

 

package com.example.test;

 

import java.util.ArrayList;

 

import Model.DataBase;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.View;

 

public class MainActivity extends Activity {

      DataBase db = new DataBase(MainActivity.this);

     

      @Override

      protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

      }

     

      public void createDataBase(View view) {

            db.createDataBase();

      }

 

      @Override

      public boolean onCreateOptionsMenu(Menu menu) {

            // Inflate the menu; this adds items to the action bar if it is present.

            getMenuInflater().inflate(R.menu.activity_main, menu);

            return true;

      }

 

}

 

Câu lệnh tạo bảng DATABASE_CREATE với khóa chính tự động tăng

 

Giải thích 1:

super(context, DATABASE_NAME, null, DATABASE_VERSION);

 

DATABASE_NAME: tên csdl mà bạn đặt

DATABASE_VERSION: khi thay đổi DATABASE_VERSION thì khi gọi this.getReadableDatabase()hàm onUpgrade()được gọi. Hàm upgrade dùng để chỉnh sửa lại csdl của bạn khi có thay đổi mới từ chương trình

 

 

Giải thích 2:

  • Mỗi chương trình thì sẽ có một nơi để chứa csdl riêng của nó. Ví dụ ở đây csdl sẽ được lưu trong data/data/com.example.test dựa theo tên package chứa giao diện hiển thị
  • Khi hàm this.getReadableDatabase() trong createDatabase() được chạy thì nó sẽ chạy vào hàm onCreate()
  • Hàm này sẽ tạo ra một thư mục databases và trong thư mục này chứa database của bạn. Như vậy nó sẽ tạo ra cho bạn data/data/com.example.test/databases/”tên database của bạn”. ( trong ví dụ này thì nó sẽ tạo ra thêm databases/comments.db trong data/data/com.example.test/)
  • onCreate chỉ được gọi khi chưa tồn tại csdl mặc định của chương trình. Ví dụ ở đây nếu đã có databases/comments.db thì hàm onCreate này sẽ không chạy nữa
  • Khi đã có database rồi thì sử dụng sql để tạo bảng thôi

Insert dòng vào bảng

 

Xem hàm createComments()

 

Giải thích:

·         Để sử dụng được csdl phải mở nó ra trước nên dùng hàm this.getReadableDatabase() hoặc this.getWritableDatabase();

 

COLUMN_COMMENT : tên cột

Oyeha : nội dung của cột COLUMN_COMMENT

TABLE_COMMENTS : tên bảng csdl

 

Lấy danh sách

 

Xem hàm getAll() 

·         Để sử dụng được csdl phải mở nó ra trước nên dùng hàm this.getReadableDatabase() hoặc this.getWritableDatabase();

 

Chạy câu lệnh sql

 

Xem hàm getAll()

Category: Android | Added by: Jack
Views: 4025 | Rating: 5.0/1
Total comments: 0
Giới Thiệu
Nghe Radio Zing
- Nhiều kênh
- Thêm kênh tùy thích
- Hẹn giờ tắt



Hát karaoke arirang
- Tìm kiếm nhanh chóng
- Hát thoải mái
- Nhạc beat Arirang chính hãng

Copyright AFgame © 2024
Trường ĐH Nông Lâm TP.HCM
Create a free website with uCoz