Android studio 025 sqlite數據庫 極簡使用

第一步 xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="數據庫管理"
        android:gravity="center"
        android:textSize="30sp"
        />
    <Button
        android:id="@+id/createDatabase"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="創建數據庫"
        />
    <Button
        android:id="@+id/updateDatabas"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="更新數據庫"
        />
    <Button
        android:id="@+id/insert"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="插入數據"
        />
    <Button
        android:id="@+id/update"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="更新數據"/>
    <Button
        android:id="@+id/query"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="查詢數據"
        />

    <Button
        android:id="@+id/delete"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="刪除數據"/>

</LinearLayout>
第二步 class StuDBHelper

package com.example.mysqlite5;


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class StuDBHelper extends SQLiteOpenHelper {
    //必須要有構造函數
    public StuDBHelper( Context context,String name,SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    //當第一次創建數據庫的時候,調用該方法
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql =  "create table stu_table(id integer  PRIMARY KEY AUTOINCREMENT ,sname varchar(20),sage int,ssex varchar(10))";
        //輸出創建數據庫的日誌信息
        Log.i("this", "create Database------------->");
        //execSQL函數用於執行SQL語句
        db.execSQL(sql);

    }

    //當更新數據庫的時候執行該方法
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //輸出更新數據庫的日誌信息
        Log.i("this", "update Database------------->");
    }
}


第三步main activity
package com.example.mysqlite5;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.security.PublicKey;

public class MainActivity extends AppCompatActivity {
    //聲明各個按鈕
    private Button createButton;
    private Button insertButton;
    private Button updateButton;
    private Button queryBtn;
    private Button deleteBtn;
    private Button ModifyBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // SQLiteStudioService.instance().start(this);//使用sqllite 調試數據庫
        setContentView(R.layout.activity_main);
        //初始化界面
        initView();
        //監聽事件
        setListener();
    }

    /**
     * 初始化界面
     */
    private void initView() {
        createButton = findViewById(R.id.createDatabase);
        insertButton = findViewById(R.id.insert);
        updateButton = findViewById(R.id.updateDatabas);
        queryBtn  = findViewById(R.id.query);
        deleteBtn = findViewById(R.id.delete);
        ModifyBtn = findViewById(R.id.update);
    }

    /**
     * 監聽事件
     */
    private void setListener() {
        createButton.setOnClickListener(new CreateListener());
        updateButton.setOnClickListener(new UpdateListener());
        insertButton.setOnClickListener(new InsertListener());
        ModifyBtn.setOnClickListener(new ModifyListener());
        queryBtn.setOnClickListener(new QueryListener());
        deleteBtn.setOnClickListener(new DeleteListener());
    }

    /**
     * 數據庫的創建
     */
    private class CreateListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            //創建StuDBHelper對象

            StuDBHelper dbHelper = new StuDBHelper(MainActivity.this,"stu_db",null,2);
            //得到一個可讀的SQLiteDatabase對象
            SQLiteDatabase db =dbHelper.getReadableDatabase();
            Toast.makeText(MainActivity.this,"創建數據庫成功",Toast.LENGTH_LONG).show();

        }
    }

    /**
     * 數據的插入
     */
    private class InsertListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            StuDBHelper dbHelper = new StuDBHelper(MainActivity.this,"stu_db",null,2);
            SQLiteDatabase db =dbHelper.getWritableDatabase();

            //插入數據SQL語句
            String sql="insert into stu_table(id,sname,sage,ssex) values(1,'zhangshan',23,'male')";//插入單條數據
            //String sql = "INSERT INTO stu_table(id,sname,sage,ssex) SELECT 2,'liming',28,'male' UNION ALL SELECT 3,'wanghong',29,'male'";插入多條數據

            //執行SQL語句
            db.execSQL(sql);
            Toast.makeText(MainActivity.this,"插入數據成功!",Toast.LENGTH_LONG).show();
        }
    }

    /**
     * 數據的刪除
     */
    private class DeleteListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {

            StuDBHelper dbHelper = new StuDBHelper(MainActivity.this,"stu_db",null,2);
            //得到一個可寫的數據庫
            SQLiteDatabase db =dbHelper.getReadableDatabase();
            //刪除SQL語句
            String sql1 = "delete from stu_table where id =1";
            //執行SQL語句
            db.execSQL(sql1);
            Toast.makeText(MainActivity.this,"刪除數據成功!",Toast.LENGTH_LONG).show();

        }
    }

    /**
     * 數據的更新
     */
    private class ModifyListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            StuDBHelper dbHelper = new StuDBHelper(MainActivity.this,"stu_db",null,2);
            //得到一個可寫的數據庫
            SQLiteDatabase db =dbHelper.getWritableDatabase();
            //修改SQL語句
            String sql = "update stu_table set sname = 'djp' where id = 1";
            //執行SQL
            db.execSQL(sql);
            Toast.makeText(MainActivity.this,"數據庫更新成功",Toast.LENGTH_LONG).show();

        }
    }

    /**
     * 數據庫版本的更新
     */
    private class UpdateListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            // 數據庫版本的更新,由原來的1變爲2
            StuDBHelper dbHelper = new StuDBHelper(MainActivity.this,"stu_db",null,2);
            SQLiteDatabase db =dbHelper.getReadableDatabase();
            Toast.makeText(MainActivity.this,"數據庫版本更新成功",Toast.LENGTH_LONG).show();

        }
    }

    /**
     * 數據的查詢
     */
    private class QueryListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            StuDBHelper dbHelper = new StuDBHelper(MainActivity.this,"stu_db",null,2);
            //得到一個可寫的數據庫
            SQLiteDatabase db =dbHelper.getReadableDatabase();

            //參數1:表名
            //參數2:要想顯示的列
            //參數3:where子句
            //參數4:where子句對應的條件值
            //參數5:分組方式
            //參數6:having條件
            //參數7:排序方式

            Cursor cursor = db.query("stu_table", new String[]{"id","sname","sage","ssex"}, null, null, null, null, null);
            while(cursor.moveToNext()){
                String name = cursor.getString(cursor.getColumnIndex("sname"));
                String age = cursor.getString(cursor.getColumnIndex("sage"));
                String sex = cursor.getString(cursor.getColumnIndex("ssex"));
                System.out.println("查詢------->" + "姓名:"+name+" "+"年齡:"+age+" "+"性別:"+sex);
            }
            Toast.makeText(MainActivity.this,"查詢數據庫成功",Toast.LENGTH_LONG).show();

            //關閉數據庫
            db.close();
        }
    }
}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章