Android SQLite 之 增、删、改、查

初始化数据库

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String DB_NAME = "mydb.db"; //数据库名称
    private static final int version = 1; //数据库版本
    public DatabaseHelper(Context context) {
        super(context,DB_NAME,null,version);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "create table user(username varchar(20) not null , password varchar(60) not null );";
        db.execSQL(sql);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 

    }
}
DatabaseHelper databaseHelper=new DatabaseHelper(MainActivity.this);
      
SQLiteDatabase db=databaseHelper.getReadableDatabase();

String sql = "insert into user(username,password) values ('" + etUserName.getText().toString().trim() + "','" + etPassword.getText().toString().trim() + "')";
db.execSQL(sql);

String whereClause="username=?";
String[] whereArgs={etUserName.getText().toString().trim()};
db.delete("user",whereClause,whereArgs);

String sql="update user set password='"+etPassword.getText().toString().trim()+"' where username='"+etUserName.getText().toString().trim()+"'";
db.execSQL(sql);

//查询所有数据
alUser.clear();
Cursor cursor = db.query("user",null,null,null,null,null,null);//查询并获得游标
while ((cursor.moveToNext())){
       User user=new User();
       user.username=cursor.getString(cursor.getColumnIndex("username"));
       user.password=cursor.getString(cursor.getColumnIndex("password"));
       alUser.add(user);
}

//模糊查询
1、使用db.query方法查询
Cursor cursor = db.query(TABLE_NAME, null, "name like '%" + searcherFilter + "%'", null, null, null, null);

2、使用db.execure方法查询
Cursor cursor=db.execure("select * from table_name where name like '%"+searcherFilter "%'")

SQLite数据库默认存储路径

data/data/<package_name>/databases/

在使用完Cursor后,要关闭Cursor,cursor.close();

如果不关闭,虽然前台不会force close,但后台会报错:DatabaseObjectNotClosedE
xception

在使用完SQLiteDatabase后,同样需要关闭。db.close(); 否则报错如Cursor。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Studio中使用SQLite数据库进行的步骤如下: 1. 创建数据库Android Studio中,可以使用SQLiteOpenHelper类来创建和管理数据库。首先,需要创建一个继承自SQLiteOpenHelper的类,并实现onCreate()和onUpgrade()方法。在onCreate()方法中,可以创建数据库表和初始化数据。 2. 插入数据 使用ContentValues类来存储要插入的数据,然后使用insert()方法将数据插入到数据库中。 3. 询数据 使用query()方法数据库中的数据,可以指定询条件、排序方式等参数。询结果会返回一个Cursor对象,可以通过Cursor对象遍历询结果。 4. 更新数据 使用ContentValues类来存储要更新的数据,然后使用update()方法将数据更新到数据库中。 5. 除数据 使用delete()方法数据库中的数据,可以指定除条件。 以上就是Android Studio中使用SQLite数据库进行的基本步骤。 ### 回答2: SQLiteAndroid Studio中内置的轻量级关系型数据库。 它在应用程序中被广泛使用,可以轻松地进行数据位置的插入、更新、除和询。下面将对如何在Android Studio中SQLite数据库进行详细介绍。 1. 创建数据库Android Studio中,打开新的“Android项目”并在后台中打开SQLite数据库。 首先需要在该项目的build.gradle文件中添加以下代码: ```java implementation 'com.android.support:support-sqlite:28.0.0' ``` 随后,我们建立一个新类,并在该类中创建由SQLiteOpenHelper扩展而来的helper类。 这可以通过从SQLiteOpenHelper创建一个适当的构造函数,并覆盖其onCreate()和onUpgrade()方法来完成。完成后,在主要应用程序中实例化helper。 2. 加数据 要添加新数据,请创建一个行对象,然后可以使用该表的insert()方法将其插入到数据库中。下面是一个示例代码: ```java SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("name", “John Smith”); contentValues.put("age", 23); db.insert(“mytable”, null, contentValues); ``` 其中mytable是表名,name和age是表中列名。 3. 更新数据 要更新数据,请使用Table的update()方法。要更新给定行中的具体数据,请使用ContentValues对象,该对象可以使用put()方法来指定一个新值。下面是一个示例代码: ```java SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("age", 25); db.update(“tablename”, contentValues, “id=4”, null); ``` 这将会把id值为4的行的年龄值更新为25。 4. 除数据 要除数据,请使用Table的delete()方法。这个方法需要一个SQL语句作为参数。例如,如果要除表中的一个特定行,请使用以下代码: ```java SQLiteDatabase db = this.getWritableDatabase(); db.delete(“mytable”, “id=2”, null); ``` 这将除表mytable中id为2的行。 5. 询数据 要询数据,请使用query()方法。该方法需要传入一个表名、要返回的列和一些可选的where、group by和having语句的参数。下面是一个示例代码: ```java SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.query(“mytable”, new String[]{“id”, “name”, “age”}, null, null, null, null, null); ``` 这会询mytable表中的id、name和age列,并将结果存储在Cursor对象cursor中。 以上是关于如何在Android Studio中SQLite数据库的简要介绍,这个过程还可以通过使用ORM类库等其他方法来简化。 但是,以上方法是SQLite基础部分中较为重要的部分。如有不懂之处,可以Android Studio SQLite官方文档进行更全面的了解。 ### 回答3: 在 Android Studio 中,开发者可以使用 SQLite 数据库来存储和管理应用程序中的数据。SQLite 是一种轻量级的关系型数据库,它非常适合于移动应用程序的存储需求。在本文中,我们将介绍如何使用 Android Studio 来完成 SQLite 数据库操作。 首先,我们需要在 Android Studio 中创建一个新的 Android 项目。在项目创建的过程中,需要设置应用程序的名称、包名和所支持的最低 API 级别等信息。之后,我们需要创建一个新的数据库表,表中包含应用程序需要存储的数据。 我们可以使用 SQLiteOpenHelper 类来创建和管理数据库SQLiteOpenHelper 类提供了一些方法来帮助我们处理 SQLite 数据库的创建和更新。在创建一个 SQLiteOpenHelper 对象时,我们需要提供数据库名称、版本号和表的结构。 接下来,我们将介绍如何使用 SQLiteDatabase 类来完成操作。SQLiteDatabase 类提供了一些方法来帮助我们对数据库进行操作。 1. 加数据 使用 insert() 方法可以向数据库表中插入一行数据。insert() 方法需要传入表名、要插入的数据和一个选项参数。以下是一个示例: SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", "Tom"); values.put("age", 18); db.insert("students", null, values); 2. 除数据 使用 delete() 方法可以从数据库表中除一行或多行数据。delete() 方法需要传入表名和一个选择字符串来限制除范围。以下是一个示例: SQLiteDatabase db = dbHelper.getWritableDatabase(); db.delete("students", "name=?", new String[]{"Tom"}); 3. 修数据 使用 update() 方法可以修数据库表中的一行或多行数据。update() 方法需要传入表名、要修的数据和一个选择字符串来限制修范围。以下是一个示例: SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("age", 20); db.update("students", values, "name=?", new String[]{"Tom"}); 4. 询数据 使用 query() 方法可以从数据库表中询一行或多行数据。query() 方法需要传入表名、要询的列、一个选择字符串和一个排序字符串。以下是一个示例: SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query("students", new String[]{"name", "age"}, "age=?", new String[]{"20"}, null, null, null); if (cursor != null) { while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("name")); int age = cursor.getInt(cursor.getColumnIndex("age")); Log.d(TAG, "name:" + name + ", age:" + age); } cursor.close(); } 在使用 SQLite 数据库过程中,我们需要注意一些事项。比如,我们需要保证数据库的打开和关闭操作是成对出现的,以避免资源的浪费;我们还需要注意表名、列名和选择字符串等信息的正确性,否则会导致数据操作失败。此外,还应该使用事务来保证数据库操作的正确性和一致性。 总之,使用 Android Studio 的 SQLite 数据库功能可以帮助我们方便地管理应用程序中的数据。通过学习 SQLite 数据库操作,我们可以更好地开发出高质量、稳定性的移动应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值