package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.content.ContentValues; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegisterActivity extends AppCompatActivity { public static final int RESULT_CODE_REGISTER=0; private Button btn_register; private EditText et_register_username,et_register_password,et_again_password,et_register_studentID,et_register_studentPhone,et_register_studentClass; /*数据库成员变量*/ private DBOpenHelper dbOpenHelper; String et_name; String et_password; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); //注册按钮 btn_register=(Button) findViewById(R.id.btn_register); //用户名编辑框 et_register_username= findViewById(R.id.et_register_username); //密码编辑框 et_register_password=findViewById(R.id.et_register_password); //再次输入密码编辑框 et_again_password=findViewById(R.id.et_again_password); et_register_studentID=findViewById(R.id.et_register_studentID); et_register_studentPhone=findViewById(R.id.et_register_studentPhone); et_register_studentClass=findViewById(R.id.et_register_studentClass); /*实例化数据库变量dbOpenHelper*/ dbOpenHelper=new DBOpenHelper(RegisterActivity.this,"user.db",null,1); btn_register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //获取三个编辑框的内容 String et_name=et_register_username.getText().toString(); String et_password=et_register_password.getText().toString(); String et_confirm=et_again_password.getText().toString(); String et_studentID=et_register_studentID.getText().toString(); String et_studentPhone=et_register_studentPhone.getText().toString(); String et_studentClass=et_register_studentClass.getText().toString(); //判断异常情况弹窗 //编辑框为空 if(TextUtils.isEmpty(et_name)){ Toast.makeText(RegisterActivity.this,"用户名不能为空!",Toast.LENGTH_SHORT).show(); //对用户名进行手机号正则化验证,调用下面写的idTelPhoneNumber方法 }else if(TextUtils.isEmpty(et_password)){ Toast.makeText(RegisterActivity.this,"密码不能为空!",Toast.LENGTH_SHORT).show(); //两次密码框内容不一致 }else if(!TextUtils.equals(et_password,et_confirm)){ Toast.makeText(RegisterActivity.this,"密码不一致!",Toast.LENGTH_SHORT).show(); } else{ //存储注册的用户名和密码 把账号密码存储进数据库 insertData(dbOpenHelper.getReadableDatabase(),et_name,et_password,et_studentID,et_studentPhone,et_studentClass); Toast.makeText(RegisterActivity.this,"注册成功!",Toast.LENGTH_SHORT).show(); } //关闭注册页面 跳转到登录页面 RegisterActivity.this.finish(); } }); } /*正则化验证手机号码方法*/ public static boolean isTelPhoneNumber(String mobile) { if (mobile != null && mobile.length() == 11) { Pattern pattern = Pattern.compile("^1[3|4|5|6|7|8|9][0-9]\\d{8}$"); Matcher matcher = pattern.matcher(mobile); return matcher.matches(); }else{ return false; } } //创建数据库的insert方法 插入数据方法 private void insertData(SQLiteDatabase readableDatabase, String username1, String password1,String studentID1, String studentPhone1,String studentClass1){ ContentValues values=new ContentValues(); values.put("username",username1); values.put("password",password1); values.put("studentID",studentID1); values.put("studentPhone",studentPhone1); values.put("studentClass",studentClass1); readableDatabase.insert("user",null,values); } //重写onDestroy()方法 @Override protected void onDestroy() { super.onDestroy(); if (dbOpenHelper != null) { dbOpenHelper.close(); } } }View Code
今天学习了一点关于操作sqllite数据库相关操作,以及相应类的写法
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
//第一次创建数据库的时候回调该方法
//当使用getReadableDatabase()方法获取数据库实例的时候, 如果数据库不存在, 就会调用这个方法;
//作用:创建数据库表:将创建数据库表的 execSQL()方法 和 初始化表数据的一些 insert()方法写在里面;
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
//SQLite数据创建支持的数据类型: 整型数据,字符串类型,日期类型,二进制的数据类型
//创建了一个名为person的表
String sql = "CREATE table employee(" +
"_id integer primary key autoincrement," +
"name varchar)";
db.execSQL(sql);
//数据库实际上是没有被创建或者打开的,直到testCreateTB()方法中的一个被调用时才会进行创建或者打开
System.out.println("数据库初始化成功");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}