我是靠谱客的博主 潇洒小馒头,最近开发中收集的这篇文章主要介绍android关于数据库SQLite的简单使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

之前不想写博客,觉得麻烦,每次要用的时候去网上查一下一大堆,但是有时候想去翻一下某个知识点的时候,有时候又觉得每次都去找,还是浪费时间,所以觉得还是写一下,以后用起来方便一些。

今天想试下数据库,之前都写烂了,但是,几个月的RN下来,一直都是用的AsyncStorage这个类,所以数据库就有点遗忘了,然后自己写了一遍常用方法,运行的时候直接就炸了,这个错误提示是查询方法错误,然后去看了一下自己的代码,发现是这样的“Cursor cursor=database.rawQuery("select * from (where name =?),new String[]{name})”,看了一下,觉得这个括号有点怪怪的,然后就把括号删除了,然后查询就没有问题,其他的功能也没有什么问题,觉得记忆还是可以,还记得八九分。


先看下SQLiteOpenHelper这个类吧,我们需要自己定义一个类去实现这个抽象类,里面有两个方法需要我们重写1、onCreate方法用于创建表,可以根据需要创建多个表,2、onUpgrade方法是用于版本更新,可以不做处理。此外还有一个需要说明的地方是,SQLiteOpenHelper这个类,没有无参构造,所以需要创建一个构造函数,不过会有自动提示,为了使用方便,我们选择一个四参构造函数,本来构造函数是四参的,被我简化过后就只剩一个上下文对象。在super中可以看出这里面的四个参数本应该与上面对应,我只是把上面的后三个参数去掉了,第二个参数是数据库名称,第三个参数本来是CursorFactory游标对象,我们使用null代替,第四个参数是版本号。好了,SQLiteOpenHelper的继承就搞定了。

package trypost.dafeng.com.studyforever.sql;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by asus on 2017/8/21.
 */
public class MySql extends SQLiteOpenHelper {
public static String TB_NAME="LiuZhiDan.db";

public MySql(Context context) {
super(context, TB_NAME, null, 1);

}
@Override

public void onCreate(SQLiteDatabase db) {
db.execSQL("create table user(name text,password text)");

}
@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}

下面再来看下实际的用法,

1:增加对象,

/**
 *
 * @param user 新增的对象
 */
public void addUser(User user){
ArrayList<User> list=searchAllUser();//下文的查询数据库全部数据的方法,如果没有查询到对象,那么list长度为0

if (list.contains(user)){//关于User类中已经重写了hashCode和equal方法,并且只认定了name,即用户名作为唯一标识。

Toast.makeText(context,"你所添加的用户已经存在",Toast.LENGTH_SHORT).show();

return;//用于去重

}
values.put("name",user.getName());

values.put("password",user.getPassword());

database.insert("user",null,values);

values.clear();
}

2、删除对象

/**
 *
 * @param name 删除对象的名称
 */
public void deleteUser(String name){
database.delete("user","name=?",new String[]{name});
}

3、修改对象

/**
 *
 * @param oldName 要修改的名称
 * @param newName 修改后的名称
 */
public void updateUser(String oldName,String newName){
User user=searchUser(oldName);

values.put("name",newName);

values.put("password",user.getPassword());

database.update("user",values,"name=?",new String[]{oldName});

values.clear();
}

4、查询某个对象

/**
 *
 * @param name 要查询对象的名称
 * @return 查询单个对象,查询不到数据,返回空对象
 */
public User searchUser(String name){
Cursor cursor=database.rawQuery("select * from user where name = ?",new String[]{name});

//Cursor cursor=database.query("user",new String[]{"name","password"},"name = ?",new String[]{"张三"},null,null,null);

if (cursor!=null){
while (cursor.moveToNext()){
String userName=cursor.getString(cursor.getColumnIndex("name"));

String userPassword=cursor.getString(cursor.getColumnIndex("password"));

return new User(userName,userPassword);

}
}
return null;
}

5、查询整张表的数据

/**
 *
 * @return
查询所有对象,若user表为空,返回的集合不为空,但长度为0.
 */
public ArrayList<User> searchAllUser(){
ArrayList<User> list=new ArrayList<>();

Cursor cursor=database.rawQuery("select * from user",null);

if (cursor!=null){
while (cursor.moveToNext()){
String name=cursor.getString(cursor.getColumnIndex("name"));

String password=cursor.getString(cursor.getColumnIndex("password"));

list.add(new User(name,password));

}
}
return list;
}

 结束语,基本功能就这些了,愿你有所收获。



最后

以上就是潇洒小馒头为你收集整理的android关于数据库SQLite的简单使用的全部内容,希望文章能够帮你解决android关于数据库SQLite的简单使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部