Android笔记--基础的连接数据库的操作

start.java

package com.example.myapplication;

import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

import com.example.myapplication.database.Connect;
import com.example.myapplication.database.User;

import java.util.Random;

public class start extends AppCompatActivity implements View.OnClickListener {

    private TextView et_name;
    private TextView et_class;
    private TextView et_major;
    private CheckBox cb_remember;

    private Button btn_add;
    private Button btn_delete;
    private Button btn_update;
    private Button btn_check;

    private Connect mHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);
        et_name=findViewById(R.id.et_name);
        et_class=findViewById(R.id.et_class);
        et_major=findViewById(R.id.et_major);
        cb_remember=findViewById(R.id.cb_remember);

        btn_add=findViewById(R.id.btn_add);
        btn_delete=findViewById(R.id.btn_delete);
        btn_update=findViewById(R.id.btn_update);
        btn_check=findViewById(R.id.btn_check);

        btn_add.setOnClickListener(this);
        btn_delete.setOnClickListener(this);
        btn_update.setOnClickListener(this);
        btn_check.setOnClickListener(this);


    }

    @Override
    protected void onStart() {
        super.onStart();

        //获取数据库帮助器实例
        mHelper= Connect.getInstance(this);

        //读写操作
        mHelper.openWriteLink();
        mHelper.openWriteLink();
    }

    @Override
    protected void onStop() {
        super.onStop();
        //关闭操作
        mHelper.closeLink();
    }

    @Override
    public void onClick(View view) {
        String name=et_name.getText().toString();
        String cla=et_class.getText().toString();
        String major=et_major.getText().toString();

        User user=null;
        switch(view.getId()){
            case R.id.btn_add:
                user=new User(name,cla,major,cb_remember.isChecked());
                //mHelper.insert(user);
                if(mHelper.insert(user)>0){
                    Toast.makeText(this,"添加成功!",Toast.LENGTH_SHORT);
                }
                break;
        }
    }
}

activity_start.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:text="姓名:">

        </TextView>

        <EditText
            android:id="@+id/et_name"
            android:layout_width="360dp"
            android:layout_height="wrap_content"
            android:background="@drawable/selector_1">

        </EditText>


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:text="班级:">

        </TextView>

        <EditText
            android:id="@+id/et_class"
            android:layout_width="360dp"
            android:layout_height="wrap_content"
            android:background="@drawable/selector_1">

        </EditText>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:text="专业:">

        </TextView>

        <EditText
            android:id="@+id/et_major"
            android:layout_width="360dp"
            android:layout_height="wrap_content"
            android:background="@drawable/selector_1">

        </EditText>

    </LinearLayout>

    <CheckBox
        android:id="@+id/cb_remember"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="大学生否">

    </CheckBox>

    <Button
        android:id="@+id/btn_add"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="添加">

    </Button>

    <Button
        android:id="@+id/btn_update"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="修改">

    </Button>

    <Button
        android:id="@+id/btn_delete"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="删除">

    </Button>

    <Button
        android:id="@+id/btn_check"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="查询">

    </Button>


</LinearLayout>

User.java

package com.example.myapplication.database;

public class User {

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCla() {
        return cla;
    }

    public void setCla(String cla) {
        this.cla = cla;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public Boolean getStudent(){
        return student;
    }

    public void setStudent(Boolean student){
        this.student=student;
    }

    private String name;
    private String cla;
    private String major;
    private Boolean student;

    public User(){}

    public User(String name,String cla,String major,Boolean student){
        this.name=name;
        this.cla=cla;
        this.major=major;
        this.student=student;
    }


}

Connect.java

package com.example.myapplication.database;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class Connect extends SQLiteOpenHelper {

    //数据库名
    private static final String db_name="user.db";

    //表名
    private static final String table_name="user_info";


    //版本号
    private static final int db_version=1;

    //数据库帮助器的初定义
    private static Connect mHelper=null;

    //读写得初定义
    private SQLiteDatabase mRDB=null;
    private SQLiteDatabase mWDB=null;

    private Connect(Context context){
        super(context,db_name,null,db_version);

    }

    //利用单例模式获取数据库帮助器的唯一实例
    public static Connect getInstance(Context context){
        if(mHelper==null){
            mHelper=new Connect(context);
        }

        return mHelper;
    }

    //打开数据库得读操作
    public SQLiteDatabase openReadLink(){
        if(mRDB==null||!mRDB.isOpen()){
            mRDB=mHelper.getReadableDatabase();
        }

        return mRDB;
    }

    //打开数据库的写操作
    public SQLiteDatabase openWriteLink(){
        if(mWDB==null||!mWDB.isOpen()){
            mWDB=mHelper.getWritableDatabase();
        }

        return mWDB;
    }

    //关闭数据库连接
    public void closeLink(){
        if(mRDB!=null&&mRDB.isOpen()){
            mRDB.close();
            mRDB=null;
        }

        if(mWDB!=null&&mWDB.isOpen()){
            mWDB.close();
            mWDB=null;
        }
    }

    //创建数据库,执行建表语句
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        String sql="create table if not exists "+table_name+" ("+
                "_name varchar primary key autoincrement not null," +
                " cla varchar not null,"+
                " major varchar not null);";

        sqLiteDatabase.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }

    //添加语句
    public long insert(User user){
        ContentValues values=new ContentValues();
        values.put("name",user.getName());
        values.put("cla",user.getCla());
        values.put("major",user.getMajor());
        values.put("student",user.getStudent());

        return mWDB.insert(table_name,null,values);
    }
}

相关的增删改查代码没在这里,下一篇见吧!

posted @ 2023-01-03 21:25  yesyes1  阅读(51)  评论(0编辑  收藏  举报