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

db.execSQL(“create table student(id integer, name char(10), age integer, grade float)”);

}

//数据库升级时调用此方法

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

在MainAcivity中声明一个SQLiteDatabase对象,用于创建数据库对象

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

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

public void createDatabase(View view) {

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

db = databaseHelper.getWritableDatabase();

}

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

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”, “数据库创建成功”);

//创建一个学生表

db.execSQL(“create table student(id integer, name char(10), age integer, grade float)”);

}

//数据库升级时调用此方法

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

Log.d(“MainActivity”, “数据库升级成功”);

}

}

### 功能和用途对比 #### SqliteStudio SqliteStudio 是一款专门用于管理和开发 SQLite 数据库的应用程序。其主要功能包括但不限于创建、编辑以及浏览 SQLite 数据库文件,支持复杂的 SQL 查询语句执行,并提供直观的图形界面来简化这些操作[^3]。 对于开发者而言,在 C++ 中通过 `sqlite3_open` 函数可以方便地连接到指定路径下的 SQLite 数据库并对其进行读写等操作[^4]。这表明即使不依赖任何特定 IDE 或者环境设置,只要具备相应的编译器和支持库,就可以利用像 SqliteStudio 这样的工具来进行高效的数据库管理工作。 #### AndroidStudio 相比之下,Android Studio 则是 Google 官方推出的集成开发环境 (IDE),专为 Android 应用程序的设计与构建而设计。它不仅集成了代码编辑器、调试器等功能模块,还提供了丰富的插件生态系统以满足不同场景下项目需求;更重要的是,内置了对 Gradle 构建系统的良好支持,使得应用打包发布流程更加便捷高效[^2]。 当涉及到移动应用程序内部的数据持久化方案选择时,可以根据实际业务逻辑复杂度及性能考量选用合适的存储方式。例如 SharedPreferences 适合处理简单的小规模键值对形式的信息记录工作,而对于更庞大且结构化的数据集合,则推荐采用 SQLite 数据库作为底层支撑技术之一[^5]。 综上所述,虽然两者都可能涉及到了 SQLite 技术栈中的某些方面,但是它们各自侧重点完全不同——前者专注于数据库本身的维护管理任务,后者则面向整个安卓平台上的软件工程实践过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值