加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite数据库

发布时间:2020-12-12 23:51:23 所属栏目:百科 来源:网络整理
导读:SQLite 数据库 数据库 : 它就是一个软件,需要安装,安装完后就有自己的目录结构。 都有客户端和服务端,所有的数据库都实现了 SQL 标准 SQLite 数据库 : 它是一个轻量级数据库,设计目的是嵌入式的,而且它占用的资源非常少 注意 : 除了主键不能存储任意的
SQLite数据库

数据库:它就是一个软件,需要安装,安装完后就有自己的目录结构。

都有客户端和服务端,所有的数据库都实现了SQL标准

SQLite数据库:它是一个轻量级数据库,设计目的是嵌入式的,而且它占用的资源非常少

注意:除了主键不能存储任意的类型之外,其他的字段可以存放任意的数据类型

SqliteDatabase它要求:表的主键的字段名最好是_id,一定要_id否则报错;


Cmd操作指令:

sqlite3 qjq.db进入数据库

.tables查看数据库里面的表

创建数据库文件:

三种方式:

第一种通过上下文创建数据库:

public class DBsqlite {

private Context context;

public DBsqlite(Context context) {

super();

this.context = context;

}

public void createDB() {

//通过上下文创建数据库

context.openOrCreateDatabase("persons.db",Context.MODE_PRIVATE,null);

第二种SQLiteDatabase创建数据库

public void createDB(){

String dir="/data/data/"+context.getPackageName();

File file=new File(dir,"persons.db");

SQLiteDatabase.openOrCreateDatabase(file,Simsun; line-height:21px"> 第三种创建一个help类继承SQLiteOpenHelper

实现DBhelp构造onCreate方法onUpgrade方法

public class DBhelp extends SQLiteOpenHelper {

public DBhelp(Context context) {

// 上下文 ,数据库名,游标工厂 ,数据版本

super(context,"persons.db",null,2);

// TODO Auto-generated constructor stub

//数据库第一次创建之后调用该方法。创建表、视图。。。 或者初始化表信息

public void onCreate(SQLiteDatabase db) {

// 创建数据库

db.execSQL("create table fish(_id integer primary key autoincrement,name text)");

}


@Override

//数据版本被改变则会执行该方法super(context,3);

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

// 版本修改表添加一列

db.execSQL("ALTER TABLE fish ADD amount integer");

}

Crud

以下分别用两种方式crud了,一种是面向SQL,一种是面向对象,但是面向对象的源码里面其实也是在帮你拼接sql

public class OtherFishService {

private SQLiteOpenHelper mOpenHelper;


public OtherFishService(Context context) {

mOpenHelper = new DBHelper(context);

/**

*插入数据

* @param name

*/

public void insert(String name){

SQLiteDatabase db = mOpenHelper.getWritableDatabase();

// String sql = "insert into fish(name) values(?)";

if(db.isOpen()){

// db.execSQL(sql,new Object[]{name});

//insert into fish

//ContentValues里面就是要插入的值

ContentValues values = new ContentValues();

values.put("name",name);

db.insert("fish","_id",values);

db.close();

}


public List<Fish> query(){


List<Fish> fishs = new ArrayList<Fish>();


SQLiteDatabase db = mOpenHelper.getReadableDatabase();

// String sql ="select * from fish";

//cursor就是resultset

// Cursor cursor = db.rawQuery(sql,Simsun; line-height:21px"> Cursor cursor = db.query("fish",//表名

new String[]{"*"},//要查询的列名

null,//查询条件

条件参数

分组

条件

null);//排序

while(cursor.moveToNext()){

//得到_id的下标

int column_index = cursor.getColumnIndex("_id");

//得到_id的值

int _id = cursor.getInt(column_index);


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


Fish fish = new Fish(_id,Simsun; line-height:21px"> fishs.add(fish);

}

//cursor使用完成之后一定要关闭

cursor.close();

return fishs;

public void update(Fish fish){

// String sql = "update Fish set name = ? where _id = ?";

String whereClause = " _id = ?";

String[] whereArgs = new String[]{fish._id+""};

db.update("fish",values,whereClause,whereArgs);

public void delete(int _id){

// String sql = "delete from fish where _id = ?";

String[] whereArgs = new String[]{_id+""};

db.delete("fish",Simsun; line-height:21px"> }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读