Android Studio Sqlite的增删改查

MySQLiteOpenHelper.java

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;

/**
 * 工具类 单例模式(1 构造函数私有化,2 对外提供函数)
 */
public class MySQLiteOpenHelper extends SQLiteOpenHelper {

    //2 对外提供函数
    private static MySQLiteOpenHelper myInstansce;

    public synchronized static MySQLiteOpenHelper getInstance(Context context){
        if(myInstansce == null){
            myInstansce =  new MySQLiteOpenHelper(context,"qingDB.db",null,1); //以后想要做数据库升级,把1改成2
        }
        return myInstansce;
    }

    //1 构造函数私有化 (有数据库的名字 数据库的版本号 → 拿到这些信息才能有能力创建数据库)
    private MySQLiteOpenHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    //创建表,表数据初始化,数据库第一次创建的时候调用,第2次发现有了,就不会重复创建了,也意味着此函数只会创建一次
    //数据库初始化用的
    @Override
    public void onCreate(SQLiteDatabase db) {

        //创建表
        //主键一般两点要求:
        //    1 命名必须是:_id (下划线id)
        //    2 格式必须是Integer
        // 主键自动增长: autoincrement
        // 创建了两列:_id,name
        String sql = "create table people(_id integer primary key autoincrement,name text)";
        db.execSQL(sql);

    }

    //数据库升级用的
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

MainActivity.java

import androidx.appcompat.app.AppCompatActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private EditText edi1,edi2,edi3,edi4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        edi1 = findViewById(R.id.edi1);
        edi2 = findViewById(R.id.edi2);
        edi3 = findViewById(R.id.edi3);
        edi4 = findViewById(R.id.edi4);

        MySQLiteOpenHelper helper = MySQLiteOpenHelper.getInstance(this);
        helper.getReadableDatabase();
    }

    //查询
    public void query(View view) {
        String pwd = edi2.getText().toString();
        //因为是单例模式,所以获取的是同一个数据库
        MySQLiteOpenHelper helper = MySQLiteOpenHelper.getInstance(this);
        SQLiteDatabase db = helper.getReadableDatabase();
        //如果数据库打开成功,db.isOpen()返回true,就进入if
        if( db.isOpen()){
            //查询返回游标
            Cursor cursor = db.rawQuery("select * from people where _id=1",null);
            //检测下面有没有数据,迭代游标,游标往下面移动来遍历数据
            while(cursor.moveToNext()){
                //获取第几列的数据
                //偷懒的写法
                //int _id = cursor.getInt(0);
                //String name = cursor.getString(1);
                //标准写法
                int _id =  cursor.getInt(cursor.getColumnIndex("_id"));
                String name =  cursor.getString(cursor.getColumnIndex("name"));
                Log.e("cs",_id+" "+name);
                System.out.println(name);

                if(pwd.equals(name)){
                    Toast.makeText(MainActivity.this, "登录成功!", Toast.LENGTH_LONG).show();
                }
            }
            //游标记得一定要关闭,否则会耗费性能
            cursor.close();
            //数据库也关闭
            db.close();
        }
    }

    //插入数据
    public void insert(View view) {
        MySQLiteOpenHelper helper = MySQLiteOpenHelper.getInstance(this);
        SQLiteDatabase db = helper.getWritableDatabase();
        //规范,检查数据库打开了才能执行操作
        if(db.isOpen()){
            String sql = "insert into people(name) values('qingDa')";
            db.execSQL(sql);
            //规范,必须关闭数据库
            db.close();
        }
    }

    //修改数据
    public void update(View view) {
        String pwd = edi4.getText().toString();
        MySQLiteOpenHelper helper = MySQLiteOpenHelper.getInstance(this);
        SQLiteDatabase db = helper.getWritableDatabase();
        //规范,检查数据库打开了才能执行操作
        if(db.isOpen()){
            //修改第2条数据
            String sql = "update people set name = ? where _id = ?";
            db.execSQL(sql,new Object[]{pwd,1});
            //规范,必须关闭数据库
            db.close();
        }
    }

    //删除
    public void delete(View view) {
        MySQLiteOpenHelper helper = MySQLiteOpenHelper.getInstance(this);
        SQLiteDatabase db = helper.getWritableDatabase();
        //规范,检查数据库打开了才能执行操作
        if(db.isOpen()){
            //删除第5条数据
            String sql = "delete from people where _id=?";
            db.execSQL(sql,new Object[]{5});
            //规范,必须关闭数据库
            db.close();
        }
    }
}

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"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <EditText
        android:id="@+id/edi1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <EditText
        android:id="@+id/edi2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <android.widget.Button
        android:id="@+id/chaxun"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:text="查询"
        android:onClick="query"
        android:layout_marginLeft="30dp"/>
    <android.widget.Button
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:text="添加"
        android:onClick="insert"
        android:layout_marginLeft="30dp"/>
    <android.widget.Button
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:text="删除"
        android:onClick="delete"
        android:layout_marginLeft="30dp"/>
    <EditText
        android:id="@+id/edi3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <EditText
        android:id="@+id/edi4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <android.widget.Button
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:text="修改"
        android:onClick="update"
        android:layout_marginLeft="30dp"/>
</LinearLayout>
  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Android Studio中使用SQLite进行增删改查操作的步骤如下: 1. 创建SQLiteOpenHelper子类,用于创建和升级数据库。 2. 在SQLiteOpenHelper子类中实现onCreate()方法,用于创建数据库表。 3. 在SQLiteOpenHelper子类中实现onUpgrade()方法,用于升级数据库表。 4. 创建一个数据访问类,用于封装对数据库的操作。 5. 在数据访问类中实现增删改查的方法,使用SQLiteDatabase类进行操作。 6. 在应用程序中调用数据访问类的方法,实现对数据库的操作。 具体实现细节可以参考Android官方文档和相关教程。 ### 回答2: Android Studio是一款非常强大的应用程序开发工具,它允许开发人员以更快的速度和更高的效率构建应用程序。其中一个常见的应用程序元素是SQLite数据库SQLite是一种轻型数据库,可在Android应用程序中使用,用于存储和检索数据。下面我们将讨论如何在Android Studio中使用SQLite进行增删改查。 首先,需要创建一个SQLite数据库来存储数据并进行各种操作。可以在项目的“res”文件夹下创建一个新文件夹“database”,然后在其中创建一个新的SQLite数据库。 接下来,需要创建一个SQLiteOpenHelper类,该类用于创建和管理SQLite数据库。该类需要扩展SQLiteOpenHelper,并重写onCreate和onUpgrade方法。onCreate方法用于创建数据库和表,而onUpgrade方法用于升级数据库版本。 接下来,需要定义一个数据模型类,用于定义要存储的数据。该类应该包含表中的每个列和相应的数据类型。可以使用AndroidAnnotations或其他框架来简化此过程。 接下来,需要创建一个数据库访问类,它用于执行各种SQLite操作。该类应该包含插入、更新、删除和查询数据的方法。可以使用AndroidAnnotations或其他框架来简化此过程。 最后,需要在应用程序中调用这些方法,并将其与适当的用户界面元素(如列表或表单)集成在一起。可以使用RecyclerView或其他框架来简化此过程。 在应用程序中使用SQLite进行增删改查需要耐心和细心,但随着经验的增加,它可以变得容易。以下是使用SQLite的伪代码示例: // 创建SQLiteOpenHelper对象 MySQLiteHelper helper = new MySQLiteHelper(context); // 获取可写的SQLite数据库对象 SQLiteDatabase db = helper.getWritableDatabase(); // 插入一条新数据 ContentValues values = new ContentValues(); values.put("name", "Tom"); values.put("age", 25); db.insert("person", null, values); // 更新数据 db.update("person", values, "name=?", new String[]{"Tom"}); // 删除数据 db.delete("person", "name=?", new String[]{"Tom"}); // 查询数据 Cursor cursor = db.query("person", null, null, null, null, null, null); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("name")); int age = cursor.getInt(cursor.getColumnIndex("age")); Log.i(TAG, "name: " + name + ", age: " + age); } // 关闭游标和数据库对象 cursor.close(); db.close(); 在这个示例中,我们创建了一个SQLiteOpenHelper对象,然后获取了可写的SQLite数据库对象。我们插入了一个新的person对象,更新了Tom的年龄,删除了Tom,然后查询了所有person对象。最后,我们必须关闭游标和数据库对象,以释放资源。 在实际应用程序代码中,可能需要进行更多的操作,如使用事务、查询特定条件的数据、进行联合查询等。使用SQLiteAndroid应用程序中进行数据存储和检索是非常流行的方法,这在大多数应用程序中都会使用。通过设计良好的数据库结构并实现适当的代码,可以轻松实现这些操作。 ### 回答3: Android studio是一款专门用于开发Android应用程序的集成开发环境(IDE)。在Android studio中,sqlite是最常用的本地数据库,在开发Android应用程序时,我们需要使用sqlite实现数据的存储和操作。 sqlite是一种轻型、快速、自包含的数据库,具有跨平台性和易于使用的特点。在Android studio中,我们可以通过SQLiteOpenHelper类来创建和管理SQLite数据库SQLiteOpenHelper类负责处理数据库的创建和版本升级,我们需要继承这个类并重写它的方法来实现数据库的操作。 1. 创建数据库 我们可以通过继承SQLiteOpenHelper类并重写它的onCreate()方法来创建数据库。在onCreate()方法中,我们需要先定义数据库表的结构,然后执行创建表的操作。 2. 数据库升级 当需要更新数据库时,我们可以通过继承SQLiteOpenHelper类并重写它的onUpgrade()方法来实现数据库升级。 在onUpgrade()方法中,我们需要先删除旧表,然后再创建新表。 3. 数据库插入 插入数据到数据库中通常通过调用SQLiteDatabase对象的insert()方法来实现。在insert()方法中,我们需要传递表名、要插入的数据和插入成功后返回的行ID。 4. 数据库查询 查询数据通常通过调用SQLiteDatabase对象的query()方法来实现。在query()方法中,我们需要传递表名、要查询的列名、查询条件和排序方式等参数。 5. 数据库更新和删除 更新数据和删除数据通常通过调用SQLiteDatabase对象的update()和delete()方法来实现。在这些方法中,我们需要传递要更新或删除的表名和条件等参数。 综上所述,android studio sqlite增删改查操作主要涉及到创建数据库数据库升级、数据库插入、数据库查询、数据库更新和数据库删除等方面。开发者需要掌握这些基本的操作,以便于设计、开发和管理应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纽轱辘小铭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值