首页 > 数据库 >Android笔记--Android+数据库的增加数据的实现

Android笔记--Android+数据库的增加数据的实现

时间:2023-01-07 23:22:05浏览次数:44  
标签:null -- 数据库 private mHelper import Android btn android

具体实现

添加成功:

界面代码很简单,直接忽略。

连接数据库的代码:

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 not null," +
                " cla varchar not null,"+
                " major varchar not null);";

        sqLiteDatabase.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
        //onCreate(sqLiteDatabase);
    }

    //添加语句
    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);
    }
}

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.database.sqlite.SQLiteDatabase;
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 EditText et_name;
    private EditText et_class;
    private EditText 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.openReadLink();
       SQLiteDatabase db= mHelper.openWriteLink();

        mHelper.onCreate(db);
    }

    @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);
                //mHelper.insert(user);
                if(mHelper.insert(user)>0){
                    Toast.makeText(this,"添加成功!",Toast.LENGTH_SHORT).show();
                }
                break;
        }
    }
}

标签:null,--,数据库,private,mHelper,import,Android,btn,android
From: https://www.cnblogs.com/liuzijin/p/17022092.html

相关文章

  • 在Win11上恢复旧的右键菜单!
    https://www.abackup.com/easybackup-tutorials/windows-11-always-show-more-options-right-click-666.htmlhttps://zhuanlan.zhihu.com/p/537254971总结:还是得注册表......
  • C++中的锁
    锁(161条消息)C++互斥对象std::mutex与std::shared_mutex;互斥锁:std::lock_guard、std::unique_lock与std::shared_lock的应用_持续学习,不断沉淀的博客-CSDN博客......
  • 【2022-12-28】连岳摘抄
    23:59中国人已经进入长寿社会,百岁老人比比皆是,而且比例将越来越高。很多人退休之时,人生刚走完一半。后面这半生如何安排,就显得非常重要。退休后不做点事,闲得发慌,既是巨大......
  • JAVA的数组
    数组的工具类:java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本操作。查看JDK帮......
  • 【ABAQUS 二次开发】Python 报错收集和解决方法
    1.运行报错,找不到本地文件及模块、自定义模块1.1Example:$/home/tops/bin/pythonxxx.pyTraceback(mostrecentcalllast):File"xxx.py",line22,in<module>......
  • .Net Core之实现下载文件的实例
    .NetCore之实现下载文件的实例https://www.uoften.com/article/243258.html我是悠悠之家的博主动听的棒球,最近开发中收集的这篇文章主要介绍.NetCore之实现下载文件......
  • idea的简单介绍
    上一篇博客中只是了解一下java文件是怎么编译的,但是一般来说大家都是使用编程软件来进行开发,我是使用IntelliJIDEA进行开发的官网下载IDEA(自行安装哈):地址:https://www.jetb......
  • 兔子牧尼 & 名为Amare的苹果 & 遇见 另一只兔子
    牧尼是一只兔子他安静敏感善良又迟钝慵懒记仇他的朋友们都说牧尼有一种忧郁的气质朋友们总能从他的眼睛里察觉到这一点牧尼不太喜欢向外界透露自己的心情......
  • second
    mysqlMySQL上篇:基础篇】【第1子篇:数据库概述与MySQL安装篇】p01-p11学习建议:零基础同学必看,涉及理解和Windows系统下MySQL安装【第2子篇:SQL之SELECT使用篇】p12-p48......
  • C#教程之asp.net core 下载文件,上传excel文件
    C#教程之asp.netcore下载文件,上传excel文件https://www.xin3721.com/Python/python13673.html 下载文件: 代码: 后端代码: publicIActionResultDownloadFile()......