Android SQLite数据库(具体例子)

本文介绍了Android中SQLite数据库的基本概念,强调了SQLite在移动设备上的优势,如轻量级、快速、支持标准SQL语法。内容包括SQLite的数据类型,如NULL, INTEGER, REAL, TEXT, BLOB,并指出SQLite允许灵活的数据存储。还提到了关键类SQLiteOpenHelper和SQLiteDatabase的用途,以及Cursor作为结果集的使用。最后,给出了一个简单的Android应用示例,涉及添加、修改和删除数据的场景。" 108122462,9100541,JavaBean的XML配置与使用,"['java', 'spring', 'xml', 'bean配置', '对象实例化']
摘要由CSDN通过智能技术生成

Android SQLite数据库

1.基本概念
参考自:https://www.runoob.com/w3cnote/android-tutorial-sqlite-intro.html

  1. SQLite是一个轻量级的关系型数据库,运算速度快,占用资源少,很适合在移动设备上使用, 不仅支持标准SQL语法,还遵循ACID(数据库事务)原则,无需账号,使用起来非常方便!
  2. 前面我们学习了使用文件与SharedPreference来保存数据,但是在很多情况下, 文件并不一定是有效的,如多线程并发访问是相关的;app要处理可能变化的复杂数据结构等等! 比如银行的存钱与取钱!使用前两者就会显得很无力或者繁琐,数据库的出现可以解决这种问题, 而Android又给我们提供了这样一个轻量级的SQLite,为何不用?
  3. SQLite支持五种数据类型:NULL,INTEGER,REAL(浮点数),TEXT(字符串文本)和BLOB(二进制对象) 虽然只有五种,但是对于varchar,char等其他数据类型都是可以保存的;因为SQLite有个最大的特点: 你可以各种数据类型的数据保存到任何字段中而不用关心字段声明的数据类型是什么,比如你 可以在Integer类型的字段中存放字符串,当然除了声明为主键INTEGER PRIMARY KEY的字段只能够存储64位整数! 另外, SQLite 在解析CREATE TABLE 语句时, 会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息如下面语句会忽略 name字段的类型信息: CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))

相关类:

  • SQLiteOpenHelper:抽象类,我们通过继承该类,然后重写数据库创建以及更新的方法, 我们还可以通过该类的对象获得数据库实例,或者关闭数据库!
  • SQLiteDatabase:数据库访问类:我们可以通过该类的对象来对数据库做一些增删改查的操作
  • Cursor:游标,有点类似于JDBC里的resultset,结果集!可以简单理解为指向数据库中某 一个记录的指针!

2.相关例子
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="@drawable/bg"
    android:orientation="vertical"
    >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_marginTop="200dp"
    android:layout_marginLeft="50dp">
    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="姓 名:"
        android:textSize="30sp"
     />

    <EditText
        android:id="@+id/et_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="请输入姓名"
        android:textSize="20sp"
        >
    </EditText>
</LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="50dp">
        <TextView
            android:id="@+id/phone"
            android:layout_width=
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Android Studio将人脸写入SQLite数据库例子: 1. 首先,在Android Studio中创建一个新的Android项目。 2. 在项目中创建一个SQLite数据库类,用于创建和管理数据库。以下是一个示例: ``` public class FaceDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "face_database"; private static final int DATABASE_VERSION = 1; private static final String TABLE_FACE = "face"; private static final String COLUMN_ID = "id"; private static final String COLUMN_FACE_DATA = "face_data"; public FaceDatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String createTable = "CREATE TABLE " + TABLE_FACE + " (" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_FACE_DATA + " BLOB)"; db.execSQL(createTable); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_FACE); onCreate(db); } public void addFace(byte[] faceData) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(COLUMN_FACE_DATA, faceData); db.insert(TABLE_FACE, null, values); db.close(); } public List<byte[]> getAllFaces() { List<byte[]> faceList = new ArrayList<>(); SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_FACE, null); if (cursor.moveToFirst()) { do { byte[] faceData = cursor.getBlob(cursor.getColumnIndex(COLUMN_FACE_DATA)); faceList.add(faceData); } while (cursor.moveToNext()); } cursor.close(); db.close(); return faceList; } } ``` 3. 在主活动中,您可以添加一些代码来捕获人脸数据,并将其写入SQLite数据库。以下是一个示例: ``` public class MainActivity extends AppCompatActivity { private FaceDatabaseHelper dbHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dbHelper = new FaceDatabaseHelper(this); Button addFaceButton = findViewById(R.id.add_face_button); addFaceButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 在这里添加代码来捕获人脸数据 byte[] faceData = ...; // 将人脸数据写入SQLite数据库 dbHelper.addFace(faceData); } }); Button getAllFacesButton = findViewById(R.id.get_all_faces_button); getAllFacesButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 获取所有人脸数据 List<byte[]> faceList = dbHelper.getAllFaces(); // 在这里添加代码来处理人脸数据 } }); } @Override protected void onDestroy() { super.onDestroy(); dbHelper.close(); } } ``` 以上是一个简单的Android Studio将人脸写入SQLite数据库例子。您可以根据自己的需要进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值