IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android Studio SQLlite学习 -> 正文阅读

[移动开发]Android Studio SQLlite学习

一、了解SQLite

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。
SQLite并没有包含大型客户/服务器数据库(如Oracle、SQL Server)的所有特性,但它包含了操作本地数据的所有功能,简单易用、反应快。SQLite内部只支持 NULL、INTEGER、REAL(浮点数)、TEXT(字符串文本)和BLOB(二进制对象)这五种数据类型,但实际上SQLite也接受varchar(n)、char(n)、decimal(p,s)等数据类型,只不过在运算或保存时会转成上面对应的数据类型。
Android内置SQLite,不需要安装和配置即可使用

二、单独安装(两种方法)

1、方法一:永久创建数据库,附加数据库和分离数据库
(1)下载并解压文件

下载地址
在这里插入图片描述

在这里插入图片描述

(2)新建文件夹将解压后的文件放在同一个文件夹中/SQLite
在这里插入图片描述
(3)进入/SQLite目录下,输入sqlite3
在这里插入图片描述
2、方法二:不需要设置路径,但数据是暂时的,关闭电脑将失去操作过的所有数据记录。这种方法不能创建、附加或分离数据
下载SQlite预编译的二进制zip文件:sqlite-tools-win32-x86-3170000.zip。解压到目录:/sqlite。直接双击运行sqlite3.exe应用程序。

三、新建/查看/删除表

1、新建和查看(句尾要用;)
在这里插入图片描述
2、删除和查看
在这里插入图片描述

四、增删查改操作

1、建表在这里插入图片描述
2、insert into
(1)写法一
在这里插入图片描述
(2)写法二
在这里插入图片描述
3、select from

(1)写法一
在这里插入图片描述
(2)写法二
在这里插入图片描述

3、update where在这里插入图片描述
4、delete from
在这里插入图片描述

五、Android Studio内置SQLite

1、Android Studio内置SQLite,不用重新下载。直接在包的目录下使用,在命令行输入sqlite3。
在这里插入图片描述
2、xml和java文件
2.1、xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="创建数据库"
        android:onClick="testCreateTB"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="新增记录"
        android:onClick="testInsert"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="更新记录"
        android:onClick="testUpdate"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="删除记录"
        android:onClick="testDelete"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="查询记录"
        android:onClick="testQuery"/>
</LinearLayout>

页面:
在这里插入图片描述

2.2、java(Activity):
(1)DB_Helper


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) {
    }
}

(2)SQLiteActivity

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class SQLiteActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sqlite);
    }

    // 创建DatabaseHelper对象
    // 只执行这句话是不会创建或打开连接的
    // 调用getReadableDatabase()或getWritableDatabase()才算真正创建或打开数据库

    public void testCreateTB(View view){
        new DBHelper(SQLiteActivity.this,"mydb2022",null,1).getReadableDatabase();
    }

    public void testInsert(View view){
        DBHelper dbHelper = new DBHelper(SQLiteActivity.this,"mydb2022",null,1);
        SQLiteDatabase database = dbHelper.getReadableDatabase();
        ContentValues values = new ContentValues();
        values.put("name","jim");
        Long id = database.insert("employee",null,values);
        if(id>0)
            Toast.makeText(SQLiteActivity.this,"新增成功",Toast.LENGTH_SHORT).show();
        else
            Toast.makeText(SQLiteActivity.this,"新增失败",Toast.LENGTH_SHORT).show();
    }

    public void testUpdate(View view){
        DBHelper dbHelper = new DBHelper(SQLiteActivity.this,"mydb2022",null,1);
        SQLiteDatabase database = dbHelper.getReadableDatabase();
        ContentValues values = new ContentValues();
        values.put("name","rose");
        int rows = database.update("employee",values,"_id = ?",new String[]{"3"});
        if(rows>0)
            Toast.makeText(SQLiteActivity.this,"修改成功",Toast.LENGTH_SHORT).show();
        else
            Toast.makeText(SQLiteActivity.this,"修改失败",Toast.LENGTH_SHORT).show();
    }

    public void testDelete(View view){
        DBHelper dbHelper = new DBHelper(SQLiteActivity.this,"mydb2022",null,1);
        SQLiteDatabase database = dbHelper.getReadableDatabase();
        int rows = database.delete("employee","_id = ?",new String[]{"2"});
        if(rows>0)
            Toast.makeText(SQLiteActivity.this,"删除成功",Toast.LENGTH_SHORT).show();
        else
            Toast.makeText(SQLiteActivity.this,"删除失败",Toast.LENGTH_SHORT).show();
    }

    public void testQuery(View view){
        DBHelper dbHelper = new DBHelper(SQLiteActivity.this,"mydb2022",null,1);
        SQLiteDatabase database = dbHelper.getReadableDatabase();
        Cursor cursor = database.query("employee",null,null,null,null,null,null,null);
        while(cursor.moveToNext()){
            int _id = cursor.getInt(cursor.getColumnIndex("_id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            Toast.makeText(SQLiteActivity.this,"id:"+_id+",name:"+name,Toast.LENGTH_SHORT).show();
        }
    }
}

2.3、测试运行

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:12:58  更:2022-06-29 19:13:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年3日历 -2024/3/28 21:36:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码