关于Android中SQLiteDataBase的增删改查的基本使用

SQLiteDataBase是Android手机的内置的一个轻型数据库,学会对数据库的使用,将会在编程时提供很大的方便,而且能瞬间提高逼格,使程序看上去高大上好多,给以一种菜鸟看不懂我程序的感觉(虽然很简单),不过吹牛逼很是方便的,好了废话也不多说了,这里我就讲讲我在最近的一次开发中用到数据库时的使用。因为自己也是新手,数据库还没有开设课程,所以只会一些简单的用法,也就是著名的增删改查啦。

要使用数据库时,当然需要一个实体类啦,因为我做的是关于学生方面的东西,所以我就拿学生类来做实体类。

package com.example.sqlite.model;

public class ModelStudent {

	//学生表主键ID
	private int studentID;
	//学生学号
	private String account;
	//学生姓名
	private String name;
	//学生性别
	private String sex;
	//学生专业
	private String major;
	public int getStudentID() {
		return studentID;
	}
	public void setStudentID(int studentID) {
		this.studentID = studentID;
	}
	public String getAccount() {
		return account;
	}
	public void setAccount(String account) {
		this.account = account;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getMajor() {
		return major;
	}
	public void setMajor(String major) {
		this.major = major;
	}
	@Override
	public String toString() {
		return "ModelStudent [studentID=" + studentID + ", account=" + account
				+ ", name=" + name + ", sex=" + sex + ", major=" + major + "]";
	}
	
	
}

上面就是学生类的定义,包括最基本的set和get方法。其中StudentID是要作为数据库的主键来使用的。

好了,关于数据库的操作从这里开始:

首先,我们要有一个数据库。在Android开发中,有许多的东西都需要一定的权限,比如开发从网络获取资源需要权限,打电话需要权限等等。这里要注意,数据库是不需要权限的,大家一定要注意一下。

(一)建表

建表的方法也不是太复杂,但是说明起来就比较难了。因为要想成功的操作数据库,就必须实现一定的封装,否则操作起来就很是麻烦。但是这里我就不进行封装了,因为太麻烦了,不过我会把当时自己的测试APP分享给大家,对封装感兴趣的,大家可以研究一下。

@Override
	public void onCreate(SQLiteDatabase pSqLiteDatabase) {
		StringBuilder _StringBuilder = new StringBuilder();
		
		_StringBuilder.append("              Create  TABLE Student( ");
		_StringBuilder.append("              [StudentID] integer PRIMARY KEY autoincrement NOT NULL");
		_StringBuilder.append("              ,[Account] varchar(15) NOT NULL");
		_StringBuilder.append("              ,[Name] varchar(10) NOT NULL");
		_StringBuilder.append("              ,[Sex] varchar(6) NOT NULL");
		_StringBuilder.append("              ,[Major] varchar(15) NOT NULL");
		_StringBuilder.append("              )");
		
		pSqLiteDatabase.execSQL(_StringBuilder.toString());
这就是建表语句,这是SQLiteOpenHelper类中的一个方法,该类是数据库操作的辅助类,我们可以继承它建一个新类,在里面实现方法。在建表语句中,"Student"是表名,当然建表的前提是要有数据库对象,下面我们在生成数据库对象,因为表是在数据库的里面的。(因为建表比较麻烦,当然我说的是语句麻烦,很容易出错,这里我推荐一个软件,SQLiteDeveloper 这个可以用来建表,很方面,具体用法大家可以度娘了,我就不详细介绍了)

private SQLiteHelper(Context pContext){
		super(pContext, "database.db", null,1);
	}

这里我们是用SQLiteHelper继承SQLiteOpenHelper,上面是SQLiteHelper的构造方法,其中,在super中,“database.db”是数据库名称,1 是版本号。当生成SQLiteHelper对象时,如果数据库不存在,则创建数据库。其中,SQLiteOpenHelper有一个方法,getWritableDatabase() ,它返回的就是一个可写的SQLiteDataBAse对象。要删除数据库也很简单,deleteDatabase("database.db"); 这是在MainActivity中直接调用的,看来是Activity中的方法了,它返回boolean值,删除成功返回true。

好了,接下来是重头戏了。

(增):

<span style="white-space:pre">	</span>public boolean insertStudent(ModelStudent pModelStudent){
		ContentValues _ContentValues = createParms(pModelStudent);
		 long newID = getDataBase().insert(getTableNameAndPK()[0], null,_ContentValues);
		return newID > 0;
	}
这个  函数就死用来实现增加数据。其中,createParms是我自己定义的函数,它的作用就是把ModelStudent对象转换为ContentValues对象,因为增加数据调用的是SQLiteDataBase的方法,它需要ContentValues对象作为参数,当然也可以直接用SQl语句来实现,当然很麻烦,我就不推荐了。getDataBase函数也是我自己定义的,它返回的是一个SQliteDataBase的对象,比较简单我就不给出函数代码了。不过createParms函数我还是给大家代码啦,容易理解。

<span style="white-space:pre">	</span>public ContentValues createParms(ModelStudent pModelStudent){
		ContentValues _ContentValues = new ContentValues();
		_ContentValues.put("Account", pModelStudent.getAccount());
		_ContentValues.put("Name", pModelStudent.getName());
		_ContentValues.put("Sex", pModelStudent.getSex());
		_ContentValues.put("Major", pModelStudent.getMajor());
		return _ContentValues;
	}
增加数据的操作到这里就结束了。

(删):

<span style="white-space:pre">	</span>protected boolean delete(String p_TableName,String p_Condition){
		
		return getDataBase().delete(p_TableName, " 1=1 " + p_Condition,null) >= 0;
	}
删除操作也就是一句话,这里需要注意的是函数的参数,p_TableName是我们的表名,也就是建表语句中的Student,而p_condition是SQL语句,删除的时候,我们一般都是按照ID来删除,也就是我们ModelStudent类中StudentID," And StudentID = " + StudentID 这个就是p_Condition,(注意前后空格要有)。

(改):

<span style="white-space:pre">	</span>public boolean UpdateStudent(String pCondition,ModelStudent pModelStudent){
		ContentValues _ContentValues = createParms(pModelStudent);
		return getDataBase().update("Student", _ContentValues, pCondition, null) > 0;
		
	}
改也就是更新数据信息,我们来看函数。同样,pCondition也是SQL语句,pModelStudent是修改过信息的ModelStudent对象。我们要做的就是把已经存在数据库中的信息更改。updata函数是SQLiteDataBase中的方法,第一个参数是表名,第二个是ContentValues对象,第三个是条件语句,第四个,就暂时用null吧,也没事。

"  StudentID = " StudentID() 这个就是pCondition。

(查):

rawQuery(p_sqlText, null),查询也就是这一行代码,它返回的就是Cursor对象,里面包含查询的信息。当然如何把里面的信息提取出来也不是难事,只要对Cursor类有一定的了解,就可以很简单的实现了。

SqlText = "Select * From Student  " + " Where StudentID = " + pStudentID 这个就是按ID来查询了,如果把where及后面的语句都去掉,那么得到的就是全部的数据库包含的信息了。


好了,至此,数据库的操作也基本结束了,希望大家能够 明白,毕竟我对数据库也是一知半解的。不过,在我的测试数据库的App中,里面包含了详细的操作,当然是封装的很好的,各种处理,有什么不太明白的可以参考那个东西。

链接:http://download.csdn.net/detail/programchangesworld/8564389




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio,通过SQLite数据库进行增删改查操作非常常见和重要。以下是在Android Studio使用SQLite数据库进行增删改查的简要步骤: 1. 创建数据库:首先,在Android Studio创建一个SQLiteOpenHelper类的子类,用于创建和管理数据库。在该类,你需要实现onCreate()方法,在该方法创建数据库表。 2. 插入数据:要插入数据,你可以使用SQLiteDatabase类提供的insert()方法。首先,获取一个可写的数据库实例,然后使用insert()方法插入数据。 3. 查询数据:要查询数据,你可以使用SQLiteDatabase类提供的query()方法。首先,获取一个可读的数据库实例,然后使用query()方法来查询指定的数据。 4. 更新数据:要更新数据,你可以使用SQLiteDatabase类提供的update()方法。先获取一个可写的数据库实例,然后使用update()方法来更新指定的数据。 5. 删除数据:要删除数据,你可以使用SQLiteDatabase类提供的delete()方法。同样,先获取一个可写的数据库实例,然后使用delete()方法来删除指定的数据。 在使用SQLite数据库时,需要注意以下几点: - 建议使用事务:在执行多个数据库操作时,建议使用事务来提高性能和数据的完整性。 - 数据库升级:当你需要更改数据库结构时,例如添加或删除表,你需要使用SQLiteOpenHelper的onUpgrade()方法来升级数据库。 - 数据库版本号:每当你更改数据库结构时,需要递增数据库版本号,以便在升级数据库时触发onUpgrade()方法。 总结:在Android Studio使用SQLite数据库进行增删改查操作是一项非常重要的技能。通过SQLiteOpenHelper类和SQLiteDatabase类提供的方法,你可以轻松地完成这些操作。然而,需要谨慎处理事务和数据库升级,以确保数据的一致性和完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值