android对数据库的增删改查操作

      当应用程序需要处理的数据量比较大时,为了方便对数据的管理,通常需要使用数据库来存储数据。

package com.example.sample7_5;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

	private SQLiteDatabase sld;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		InitViews();
	}
	
	private void InitViews() {
		Button b = (Button) findViewById(R.id.Button01);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				createOrOpenDatabase();//创建数据库
			}
		});
		
		b = (Button) findViewById(R.id.Button02);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				closeDatabase();//关闭数据库
			}
		});
		
		b = (Button) findViewById(R.id.Button03);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				insert();//添加记录
			}
		});
		
		b = (Button) findViewById(R.id.Button04);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				delete();//删除记录
			}
		});
		
		b = (Button) findViewById(R.id.Button05);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				update();//更新记录
			}
		});
		
		b = (Button) findViewById(R.id.Button06);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				query();//查询记录
			}
		});
	}

	protected void query() {
		try {
			String sql = "select * from student where sage>?";
			Cursor cur = sld.rawQuery(sql, new String[]{"20"});
			appendMessage("学号\t\t姓名\t\t年龄\t班级");
			while(cur.moveToNext()){
				String sno = cur.getString(0);
				String sname = cur.getString(1);
				int sage = cur.getInt(2);
				String sclass = cur.getString(3);
				appendMessage(sno+"\t"+sname+"\t\t"+sage+"\t"+sclass);
			}
			cur.close();
		} catch (Exception e) {
			Toast.makeText(MainActivity.this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();
			e.printStackTrace();
		}
	}

	protected void update() {
		try {
			String sql = "update student set stuname='李勇'";
			sld.execSQL(sql);
			appendMessage("成功更新记录");
		} catch (Exception e) {
			Toast.makeText(MainActivity.this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();
			e.printStackTrace();
		}
	}

	protected void delete() {
		try {
			String sql = "delete from student;";
			sld.execSQL(sql);
			appendMessage("成功删除所有记录");
		} catch (Exception e) {
			Toast.makeText(MainActivity.this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();
			e.printStackTrace();
		}
	}

	protected void insert() {
		try {
			String sql = "insert into student values('10001','王强', 23, '97002')";
			sld.execSQL(sql);
			appendMessage("成功插入一条记录");
		} catch (Exception e) {
			Toast.makeText(MainActivity.this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();
			e.printStackTrace();
		}
	}

	protected void closeDatabase() {
		sld.close();
	}

	protected void createOrOpenDatabase() {
		try {
			sld = SQLiteDatabase.openDatabase("/data/data/com.example.sample7_5/mydb", null, SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_NECESSARY);
			appendMessage("数据库已经成功打开");
			String sql = "create table if not exists student(sno char(5), stuname varchar(20), sage integer, sclass char(5))";
			sld.execSQL(sql);
			appendMessage("student 已经成功创建!");
		} catch (Exception e) {
			Toast.makeText(MainActivity.this, "数据库错误:"+e.toString(), Toast.LENGTH_SHORT).show();
			e.printStackTrace();
		}
	}

	private void appendMessage(String message) {
		EditText et = (EditText) findViewById(R.id.EditText01);
		et.append(message+"\n");;
	}
}

如果想借用代码,需要改动的就是创建数据库的位置,即改动下面的代码即可。
sld = SQLiteDatabase.openDatabase("/data/data/com.example.sample7_5/mydb", null, SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_NECESSARY);

下载链接:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Studio 中的数据库增删改查操作可以通过使用 SQLite 数据库实现。以下是一些基本的操作: 1. 增加数据:使用 insert() 方法向数据库中添加新的数据。 2. 删除数据:使用 delete() 方法从数据库中删除数据。 3. 修改数据:使用 update() 方法修改数据库中的数据。 4. 查询数据:使用 query() 方法从数据库中查询数据。 在进行这些操作之前,需要先创建数据库和表格,并定义相应的数据模型。可以使用 SQLiteOpenHelper 类来创建和管理数据库。 在进行增删改查操作时,需要使用 SQLiteDatabase 类来执行相应的操作。可以使用 ContentValues 类来存储数据,以便在插入或更新数据时使用。 需要注意的是,在进行数据库操作时,应该使用异步任务或线程来执行,以避免阻塞 UI 线程。可以使用 AsyncTask 类或 HandlerThread 类来实现异步操作。 以上是 Android Studio 中数据库增删改查的基本操作,具体实现可以参考相关的文档和示例代码。 ### 回答2: Android Studio 是一个常用的开发工具,它的数据库操作功能不仅能够帮助开发者提高开发效率,还能帮助我们更好地处理数据。接下来将会介绍如何在 Android Studio 中对数据库进行增删改查。 1. 创建数据库 Android 中的数据库操作依赖 SQLite,所以需要先引入 SQLite 相关的依赖。然后在创建数据库之前,需要定义表的结构。这可以通过创建一个 Java 类来实现。在该类中定义表的结构,每个属性代表表的一列。创建完 Java 类后,使用该类中的属性创建数据库表。下面是一个例子: ```java public class DBHelper extends SQLiteOpenHelper { public static final String CREATE_USER = "create table user (" + "id integer primary key autoincrement, " + "name text, " + "age integer, " + "height real)"; private Context mContext; private SQLiteDatabase db; public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); mContext = context; } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL(CREATE_USER); Toast.makeText(mContext, "创建数据库成功", Toast.LENGTH_SHORT).show(); db = sqLiteDatabase; } } ``` 在上面的代码中,我们创建了一个 DBHelper 类来操作数据库,其中 CREATE_USER 是创建数据表 user 的 SQL 语句,onCreate 方法中调用了 sqLiteDatabase 的执行 SQL 语句方法 execSQL,从而创建了 user 数据表。 2. 数据库增删改查 接下来,我们需要对数据库进行增删改查操作。常见的数据库操作有增加数据、删除数据、修改数据和查询数据。 增加数据: ```java ContentValues values = new ContentValues(); values.put("id", 1); values.put("name", "小明"); values.put("age", 20); values.put("height", 1.75); db.insert("user", null, values); ``` 对表 user 进行插入数据操作,使用 ContentValues 对象组装待插入的数据,调用 SQLiteDatabase 的 insert 方法,即可完成数据插入。 删除数据: ```java db.delete("user", "id = ?", new String[]{"1"}); ``` 其中 delete 方法需要传入三个参数,第一个参数是表明,第二个参数是 SQL 语句中的 WHERE 条件,第三个参数是 WHERE 条件的占位符。 修改数据: ```java ContentValues values = new ContentValues(); values.put("age", 21); values.put("height", 1.80); db.update("user", values, "id = ?", new String[]{"1"}); ``` 其中 update 方法也需要传入三个参数,第一个参数是表明,第二个参数是待更新的数据,第三个参数是 SQL 语句中的 WHERE 条件。 查询数据: ```java Cursor cursor = db.query("user", null, null, null, null, null, null); while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("id")); String name = cursor.getString(cursor.getColumnIndex("name")); int age = cursor.getInt(cursor.getColumnIndex("age")); float height = cursor.getFloat(cursor.getColumnIndex("height")); Log.i(TAG, "id:" + id + " 姓名:" + name + " 年龄:" + age + " 身高:" + height); } ``` 其中 query 方法需要传入七个参数,第一个参数是表名,第二个参数是待查询的列名,第三个到第七个参数是 SQL 中的其他操作,返回值是一个 Cursor 对象,通过遍历该对象的数据,即可完成数据查询。 3. 总结 Android Studio 数据库操作中,最重要的是创建数据库和创建表的工作,需要在代码中显式地创建和定义。增删改查操作本质上是对数据库和表的增删改查操作,需要通过调用相应的方法进行实现。每个方法都需要传入对应的参数,因此在操作时必须弄清楚参数的含义和对应的 SQL 语句的语法。 ### 回答3: Android Studio是Android开发人员非常常用的一款集成开发环境(IDE)。在Android应用开发中,常常需要用到数据库来进行数据存储。而数据库操作包括增、删、改、查四个方面,而这四个方面的实现是相对独立的。 以下将针对Android Studio中对数据库增删改查的实现进行讲解。 首先,需要了解Android开发中常用的SQLite数据库。在Android Studio中,我们可以使用SQLiteOpenHelper类来创建和管理数据库。SQLiteOpenHelper中有两个方法是非常重要的:onCreate()和onUpgrade()。onCreate()方法用于第一次创建数据库时进行表结构的创建,onUpgrade()方法用于数据库版本升级时进行数据迁移。 接下来,我们分别介绍如何实现增、删、改、查四个操作。 1. 数据库增加数据 对于SQLite数据库而言,数据的添加直接使用SQL语句即可。如下面的示例代码所示: ```Java public void insertData(String name, String age) { SQLiteDatabase db = this.getWritableDatabase(); //获取可写数据库 ContentValues values = new ContentValues(); values.put("name", name); values.put("age", age); db.insert("user", null, values); db.close(); } ``` 首先,我们需要获取可写数据库,然后将要插入的数据封装到ContentValues对象中,最后使用insert()方法在表中增加数据即可。 2. 数据库删除数据 对于数据库中的数据删除操作,同样需要使用SQL语句。如下面的示例代码所示: ```Java public void deleteData(int id) { SQLiteDatabase db = this.getWritableDatabase(); //获取可写数据库 db.delete("user", "id = ?", new String[]{ String.valueOf(id) }); db.close(); } ``` 其中,delete()函数中的第二个参数用于指定删除数据库的条件。删除指定id的一行数据,调用delete()时就可以把id传入参数中。 3. 数据库更新数据 数据库中的数据更新操作同样需要使用SQL语句,可以使用update()方法来进行更新。如下面的示例代码所示: ```Java public void updateData(int id, String name, String age) { SQLiteDatabase db = this.getWritableDatabase(); //获取可写数据库 ContentValues values = new ContentValues(); values.put("name", name); values.put("age", age); db.update("user", values, "id = ?", new String[]{ String.valueOf(id) }); db.close(); } ``` 其中的update()方法需要传入的参数分别为需要更新的内容、更新条件和条件参数。根据id值找到对应的一行数据,从而进行更新操作。 4. 数据库查询数据 Android Studio提供了非常方便的查询接口,使用query()方法可以方便地完成数据的查询操作。如下面的示例代码所示: ```Java public Cursor queryData() { SQLiteDatabase db = this.getWritableDatabase(); //获取可写数据库 Cursor cursor = db.query("user", new String[]{ "id", "name", "age" }, null, null, null, null, null); return cursor; } ``` 这里的Cursor对象代表一个指向查询结果的指针,可以通过它来遍历整个结果集。在上面的示例代码中,query()方法中的第一个参数指定了查询的表名,第二个参数指定了需要查询的字段,第三个参数指定了查询条件,第四、五、六个参数分别表示分组、过滤和排序的条件。最后返回查询结果的Cursor对象即可。 总结: 本文介绍了Android Studio中如何使用SQLiteOpenHelper类来创建和管理数据库,以及如何实现数据库的增、删、改、查四个操作。SQLite数据库Android中最常用的数据库之一,它轻巧便捷,对于简单的数据存储操作非常方便。在实际开发中,可以根据具体的需求,灵活使用各种数据库操作方式来实现功能的开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值