sqlite3在Androidstudio3.0中的使用

本文详细介绍了如何在Android Studio 3.0中使用SQLite数据库,包括创建数据库、表、增删改查操作。通过一个简单的班级学生信息管理APP实例,展示了数据库操作的核心代码和常见误区,提醒开发者注意myOpenHelper=new MyOpenHelp(getApplicationContext())这行代码的重要性。附带了一个实用的SQLite操作工具的下载链接。
摘要由CSDN通过智能技术生成

      一个较为成熟的手机软件APP都需要一个数据库对于用户使用情况进行记录以及对于软件运行情况,以及简单数据进行记录。同时考虑到手机软件开发尽量做小,降低开发成本,增加反应速度等因素。sqlite数据库在这方面是做的挺好的,作为一款轻型嵌入式的数据库。能够直接嵌入到我们开发的手机APP中,对于存储类似于我们日常用到的使用例如用户账号密码、用户基本数据等,同时也可以作为用户数据的缓存机制,比如本人制作的基于百度地图的消防水源管理系统客户端就是利用sqlite进行水源信息的存储https://download.csdn.net/download/qq_41562408/10679557密码账号为111,后期构建服务器就可以将其转换为一个用户数据缓存机制,用户可以在网络不是很好的情况下,进行水源的基本管理,在网络环境好的情况下便可对数据进行上传更新。所以就要求简单数据存储,较快反应速度来说,本人觉得使用sqlite是一款较好的选择。不过对于服务器来说还是运用MySQL、SqlServer要适合一些。废话不多说,进入本文主题:

      本文主要介绍sqlite在Androidstudio中运用的注意事项以及简单但是较为常用的操作进行介绍,里面有不少本人在运用时踩到雷,运行失败,Androidstudio还没有报错,这是最伤人的。究其原因,往往就是那几句容易让人忽略的代码。这些本人都会在这篇文章进行体现。与君共勉吧!

      sqlite以及Androidstudio的安装这里就不介绍了,本人使用的版本为:sqlite3、Androidstudio3.0。首先看过我之前的文章的人知道,在进行项目开发时的基本套路,关防火墙、杀毒软件。本文就以一个简易的班级学生信息管理APP为例进行介绍sqlite数据库在Androidstudio项目开发中的注意事项和简单的增删改查。(在文章的后面我对把这次项目进行分享,还有一个比较好用的参考工具哦!)

       对于sqlite中对于数据库的增删改查有两种操作形式,一种是sql语句进行操作,一种是谷歌工程师为开发员打包好的方法。对于第一种优点,操作灵活,能够适用数据库的所有操作,缺点是容易出错。第二种正好和第一种相反。缺点操作不够灵活,当面对两张以上表的时候就有些力不从心,优点是不易出错。

对第一种核心代码举例:

bd.execSQL("insert into info(name,phone) values(?,?);",new Object[]{"张三","135173687"});//增
bd.execSQL("delete from info where name=?",new Object[]{"张三"});//删
bd.execSQL("update info set phone=? where name=?",new Object[]{"348935439","张三"});//改
bd.execSQL("select form info where name=?",new Object[]{"张三"});//查

对于第二种核心代码

ContentValues values=new ContentValues();
values.put("name","王五");
values.put("phone","110");//增
bd.delete("info","name=?",new String[]{"王五"});//删
ContentValues values=new ContentValues();
values.put("phone","114");
bd.update("info",values,"name=?",new String[]{"王五"});//改
Cursor cursor=bd.query("info",new String[]{"name","phone"},"name=?",new String[]{"王五"},null,null,null);//查

1、首先创建项目:项目名称为学员学籍管理系统,包名就选用com.jingda.mnfz这些都不重要,你爱叫啥就叫啥。

2、进行学籍管理系统界面设计,这里只是为了介绍sqlite的用法,所以就一切从简,之后笔者会分析一个较为好看一点的学籍管理系统,美工能力不行,见谅! 本项目设计三个界面(首页、增加以及修改界面、查询界面)

(1)首页页面布局如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    。。。。。。。。。。。。。。。。。。。。。
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/add"
        android:text="添加数据"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:textSize="30dp"
        android:layout_margin="20dp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/chaxun"
        android:layout_below="@+id/add"
        android:text="查询数据"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:textSize="30dp"
        android:layout_margin="20dp"/>


</RelativeLayout>

ps:该代码。。。。。。。。部分为你Androidstudio创建页面时默认代码不需要修改。

(2)增加及修改页面设计

布局设计为:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    。。。。。。。。。。。。。。。。。。。。
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".addActivity">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="30dp"
    android:orientation="vertical">
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="学号"
        android:textSize="20sp"
        android:id="@+id/xuehao"
        android:layout_margin="20dp"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="姓名"
        android:textSize="20sp"
        android:id="@+id/name"
      
一.创建一个DataBaseHelper DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用 A、 在SQLiteOpenHelper的子类当,必须要有的构造函数 B、该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDataBase对象的时候onCreate 二、创建一个实体person类并且给字段和封装 三、创建一个业务类对SQL的CRUD操作 1.getWritableDatabase()和getReadableDatabase()的区别 ,两个方法都可以获取一个用于操作数据库的SQLiteDatabase实例 2.execSQL(增,删,改都是这个方法)和close();android内部有缓存可关闭也不关闭也行,查询rawQuery是方法 3.在分页有到Cursor(游标)取游标下一个值cursor.moveToNext(),用游标对象接数据 "select * from person limit ?,?" person不能加上where 关键字 4.在删除注意:sb.deleteCharAt(sb.length() - 1); 四、AndroidCRUD业务对SQLite的CRUD操作 1.ContentValues对象的使用 2.android内部insert添加数据的方法,而且values这个不给值也必须要执行,而主键是不是null的其他字段的值是为null 3.insert update query delete 五、单元测试类要注意的 AndroidCRUDService curdService = new AndroidCRUDService(this.getContext()); /* * 注意:getContext必须在我们使用前已经注解进去的,在使用前要实力化,而且是使用后才有上下文 *一般设置为局部对象 */ 六、AndroidManifest.xml的配置 <!-- 配置用户类库android.test.runner测试 --> package jll.sqlitedb; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; /** * *@author Administrator DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能 * 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过 * 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用 */ public class DataBaseHelper extends SQLiteOpenHelper { // 给一个默认的SQLite的数据库名 private static final String DataBaseName = "SQLite_DB"; private static final int VERSION = 2; // 在SQLiteOpenHelper的子类当,必须要有的构造函数 public DataBaseHelper(Context context, String name, CursorFacto
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值