Android之SQLite数据库及SQLiteStudio工具的使用

db.execSQL(“insert into student(id, name, age, grade) values(?, ?, ?, ?, ?)”, new Object[]{1230001, “张三”, 17, 75});

执行删除操作,调用SQLiteDatabase中的execSQL()方法,第一个参数时sql语句,第二个参数时sql语句中占位符参数的值,数组顺序与占位符对应

db.execSQL(“delete from Student where name = ?”, new Object[]{“李华”});

执行更新操作,调用SQLiteDatabase中的execSQL()方法,参数为sql语句

db.execSQL(“update student set id = 1111111 where name=‘张三’”);

执行查询操作,调用SQLiteDatabase中的rawQuery()方法,第一个参数时sql语句,第二个参数为null

db.rawQuery(“select * from student”, null);

(四)SQLite数据的可视化

=========================================================================

1.下载SQLiteStudio


点击这里

直接下载后打开,傻瓜式安装

2.添加插件


打开SQLiteStudio,点击菜单栏中的Tools->open cofiguration dialog,选中Plugins(插件),选中Android SQLite,点击OK

在这里插入图片描述

3.添加包


插件添加完成后,再点击Tools->Get Android connector Jar File,导出jar包放入项目中的libs文件夹。

4.连接


在SQLiteStudio中连接手机上项目的数据库,在菜单栏中选择Database->Add a database

在这里插入图片描述

运行程序,SQLiteStudio可调试数据库的数据

(五)运行效果

=================================================================

主页面:

主页面

点击创建数据库,Log打印日志

创建数据库

点击插入数据(SQLiteStudio中显示数据)

学生表

点击删除数据:(SQLiteStudio显示数据和Android中Log打印日志)

删除数据

更新数据:(SQLiteStudio显示数据和AndroidStudio中Log打印日志)

更新数据

查询数据:(AndroidStudio中Log打印数据)

查询数据

(六)代码

===============================================================

MainActivity.java

public class MainActivity extends Activity {

private DatabaseHelper databaseHelper; //用于创建帮助器对象

private SQLiteDatabase db; //用于创建数据库对象

private static final String name = “mydatabase.db”; //数据库名称

private static final int version = 1; //数据库版本

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

SQLiteStudioService.instance().start(this);

}

//创建数据库

public void createDatabase(View view) {

databaseHelper = new DatabaseHelper(this, name, null, version);

db = databaseHelper.getWritableDatabase();

}

//向数据库中添加数据

public void Insert(View view) {

//向学生表中添加数据

db.execSQL(“insert into student(id, name, age, grade) values(?, ?, ?, ?)”, new Object[]{1230001, “张三”, 17, 75});

db.execSQL(“insert into student(id, name, age, grade) values(?, ?, ?, ?)”, new Object[]{1230002, “李四”, 20, 79});

db.execSQL(“insert into student(id, name, age, grade) values(?, ?, ?, ?)”, new Object[]{1230003, “Mark”, 18, 99});

db.execSQL(“insert into student(id, name, age, grade) values(?, ?, ?, ?)”, new Object[]{1230004, “Mary”, 22, 89});

db.execSQL(“insert into student(id, name, age, grade) values(?, ?, ?, ?)”, new Object[]{1230005, “王五”, 16, 83});

db.execSQL(“insert into student(id, name, age, grade) values(?, ?, ?, ?)”, new Object[]{1230006, “Jack”, 19, 91});

db.execSQL(“insert into student(id, name, age, grade) values(?, ?, ?, ?)”, new Object[]{1230007, “李华”, 21, 85});

Log.d(“MainActivity”, “信息插入成功!”);

}

//删除数据库中的数据

public void Delete(View view) {

//删除李华信息

db.execSQL(“delete from student where name = ?”, new Object[]{“Jack”});

Log.d(“MainActivity”, “Jack信息被删除!”);

}

//修改数据库中的数据

public void Update(View view) {

//将张三的学号改为1111111

db.execSQL(“update student set id = 1111111 where name=‘张三’”);

Log.d(“MainActivity”, “张三数据信息更新成功!”);

}

//查询数据库中的数据

public void Select(View view) {

//查询数据库中学生的信息

Cursor cursor = db.rawQuery(“select * from student”, null);

while (cursor.moveToNext()) {

//用cursor.getColumnIndex获得列

Integer id = cursor.getInt(cursor.getColumnIndex(“id”));

String name = cursor.getString(cursor.getColumnIndex(“name”));

Integer age = cursor.getInt(cursor.getColumnIndex(“age”));

float grade = cursor.getFloat(cursor.getColumnIndex(“grade”));

Log.d(“MainActivity”, “[学号:” + id + “, 名字:” + name + “, 年龄:” + age + “, 成绩:” + grade + ‘]’);

}

}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:tools=“http://schemas.android.com/tools”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

tools:context=“.MainActivity”

android:orientation=“vertical”>

<Button

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:onClick=“createDatabase”

android:text=“创建数据库”

android:textSize=“25dp” />

<Button

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“插入数据”

android:textSize=“25dp”

android:onClick=“Insert”/>

<Button

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“删除数据”

android:textSize=“25dp”

android:onClick=“Delete”/>

<Button

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“更新数据”

android:textSize=“25dp”

android:onClick=“Update”/>

<Button

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:onClick=“Select”

android:text=“查询数据”

android:textSize=“25dp” />

DatabaseHelper.java

//创建一个抽象类SQLiteOpenHelper的实现类DatabaseHelper

public class DatabaseHelper extends SQLiteOpenHelper {

/**

  • MyOpenHelper构造方法

  • @param context 上下文

  • @param name 数据库文件的名字

  • @param factory 游标工厂(结果集)

  • @param version 数据库的版本号(用于升级)

*/

public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {

super(context, name, factory, version);

}

//创建数据库时,调用此方法

@Override

public void onCreate(SQLiteDatabase db) {

Log.d(“MainActivity”, “数据库创建成功”);

//创建一个学生表

总结

Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

上面分享的字节跳动公司2021年的面试真题解析大全,笔者还把一线互联网企业主流面试技术要点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

【Android高级架构视频学习资源】

Android部分精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
流面试技术要点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
[外链图片转存中…(img-bhsStx5u-1714496196098)]

【Android高级架构视频学习资源】

Android部分精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!