昨天早上六点就起来要去排队考科目一,实在是困得很,昨天晚上早早就睡了,其实解释为什么昨天没有博客。
一个好消息就是我顺利的考过了,刚到90,还是很惊险。
还是说一下最近在干什么,之前是一直用的MySQL连接我的Android studio,最近在学习使用它自带的一个sqlite数据库,直接上代码。补充一下,就是我的代码中
private static final int DATABASE_VERSION = 3;
这个初始值为1,而且Oncreate函数只有数据库不存在时,第一次创建时执行,好像是只能同时创建一个表,当然就会想我如果要添加新的表或者表里的字段(就是name,pasword...)呢,这就要用到下面数据库升级自动调用函数update。
可以看到我的代码就是对上述疑惑都进行实现。记得在改完后要让version加1,再执行程序。就是改一次加1,如果我删掉update代码部分,只留下修改表字段,version也改回2呢,结果就是不变,一旦执行后,就只能通过再次修改version和添加update代码。
这是它可视化数据库,但是只能看,不能进行任何修改。
package com.example.myapplication2.database;import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.widget.Toast;import androidx.annotation.Nullable;import com.example.myapplication2.bean.User;public class DatabaseHelper extends SQLiteOpenHelper {// 创建数据库名字private static final String DATABASE_NAME = "myDatabase.db"; // SQLite数据库的版本private static final int DATABASE_VERSION = 3; // 在首次创建DATABASE_NAME数据库里创建user表 以及两种书写方式方式 //public static final String CREATE_USER = "create table user (id integer primary key autoincrement, name text)";public static final String CREATE_USER = "create table if not exists user (" +"id integer primary key autoincrement," +"name text)"; //创建第二个表loginpublic static final String CREATE_LOGIN = "create table if not exists login (" +"name text," +"password text)";Context mContext;//创建SQLite数据库public DatabaseHelper(@Nullable Context context) {super(context, DATABASE_NAME ,null, DATABASE_VERSION );this.mContext = context;}//在第一次DATABASE_NAME数据库创建成功时调用@Overridepublic void onCreate(SQLiteDatabase sqLiteDatabase) {sqLiteDatabase.execSQL(CREATE_USER);Toast.makeText(mContext, "数据库首次创建成功!", Toast.LENGTH_SHORT).show();} //数据库升级时自动调用@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {switch (oldVersion) {case 1:String sql = "ALTER TABLE user"+ " ADD COLUMN avatar text";db.execSQL(sql); // 执行修改表,添加字段的逻辑。case 2:db.execSQL(CREATE_LOGIN);}} //想user表里插入数据public void insertUser(User user){DatabaseHelper databaseHelper = new DatabaseHelper(mContext);SQLiteDatabase db = databaseHelper.getWritableDatabase();ContentValues contentValues = new ContentValues();if(db.isOpen()){contentValues.put("name",user.getName());contentValues.put("password",user.getPassword());db.insert("login",null, contentValues);db.close();}} // 删除user表的内容}
这个其实就是连接简便了一点,但是我现在觉得还是MySQL好用,虽然不好连接。那我说一下我的理由吧,就是现在我是创建了两个表,但是有一个user我想要删掉,就需要运行一下程序调用删除表的代码,还有如果想要删除其中的一条数据也要运行程序和代码。一个感觉就是繁琐,虽然可以导到Navicat但是还要在数据目录里找到复制保存到电脑上,然后才能连接,但是可视化工具也只能修改你复制下来的文件,原文件还是没有改变,还要将其覆盖。像是之前的MySQL就是可以实时修改,略去这些繁琐的步骤,可以大大减少开发时间。
给人的感觉就是头大,为什么会这么繁琐呢。本来觉得终于可以避开MySQL连接繁琐问题了,又被这个拿住。