Androide SQLiteDatabase数据库操作(转)

简介: SQLite可以解析大部分的标准SQL语句:建表语句:create table 表名(主键名 integer primary key autoincrement(设置为自增列),其他列名及属性)或(主键名 integer primary key )SQLite数据库中将所有声明为“integer primary key”的列自动识别为自增列。

SQLite可以解析大部分的标准SQL语句:
建表语句:create table 表名(主键名 integer primary key autoincrement(设置为自增列),其他列名及属性)或(主键名 integer primary key )SQLite数据库中将所有声明为“integer primary key”的列自动识别为自增列。 

查询语句:select * from 表名 where 条件子句 group by 分组子句 having…order by 排序子句 DESC(降序)(ASC 升序)。

分页语句:select * from 表名 limit 记录数 offset 开始位置

或者 select * from 表名 limit 开始位置,记录数

插入语句:insert into 表名(字段列表) values (值列表)

更新语句:update 表名 set 字段名=值 where 条件子句

删除语句:delete from 表名 where 条件子句

删表语句:drop table if exists 表名

增加字段语句:

alter table 表名 add column 列名 字段类型

修改数据库名称

alter table 表名 rename to 新表名

 

而为了方便对数据库进行版本管理,建议在开发项目的时候使用SQLiteOpenHelper类,它提供了两个重要的方法,分别是

onCreate(SQLiteDatabase db)——用于初次使用软件时生成数据库,一旦数据库存在则不会调用此方法。函数是在第一次创建数据库的时候执行的,仅仅生成DataBaseHelper对象的时候是不会调用该函数的,而只有当实现DataBaseHelper对象的getReadableDataBase时或者是调用了getWritableDataBase时,如果是第一次创建数据库,那么就一定会调用onCreate()函数 。

onUpgrade(SQLiteDatabase db,int oldVersion,int vewVersion)——用于升级软件时更新数据库表结构,如增加表、列字段等操作。

提示一下,在软件升级前,最好对原有数据进行备份,在新表建好后把数据导入新表中。

实现了这两个方法,就可以用他的getWritableDatabase()和getReadableDatabase()来获得数据库。

 

强调下:当第一次创建数据库时,当实现DataBaseHelper对象的getReadableDataBase时或者是调用了getWritableDataBase时,系统自动调用oncreater()方法(当然程序中也可以调用);

如果用户需要升级数据库表结构,需要主动调用onUpgrade(SQLiteDatabase db,int oldVersion,int vewVersion),传入一个新的版本的号。

 

查询操作:在使用SQLite的进行查询时最好用占位符“?”来代替各值,注意直接用?而不是'?'。

例如:
SQLiteDatabase db=databaseHelper.getWritableDatabase();
db.execSQL(“update person set name=?,age=? where personid=?”,new Obect{person.getName(),person.getAge(),person.getId()});
execSQL()方法是用来执行除查找语句外的sql语句,查找语句用rawQuery()来执行它会放回一个Cursor。当然,他还提供了封装好的Java类方法供我们操作。具体方法不介绍了,可以直接查看文档中SQLiteDatabase类的用法。

插入操作:

插入一行记录,可以通过三种方式实现:

第一种,封装列-值对,调用 db.insert(table, nullColumnHack, values)或者db.insertOrThrow(table, nullColumnHack, values)方法插入,插入成功返回行号,失败时返回-1.

ContentValues values=new ContentValues();
        values.put(MyHelper.COUNTRY, "中国");
        values.put(MyHelper.CODE,86);  
        //插入一行数据
        db.insert(MyHelper.TD_NAME, MyHelper.ID, values);

如果传入的values为空的话,则将插入一行各列指为NULL或0的数据,(如果列是Integer类型,则0,其它类型为NULL)。

第二种,组织SQL语句,使用 db.execSQL(String sql)或 db.execSQL(String sql,Object[] data)执行,无返回值。

        String sql1="insert into "
          +MyHelper.TD_NAME+"("
          +MyHelper.COUNTRY+","
          +MyHelper.CODE+")values"
          +"(?,789)";
        String[] data={"Japan"};    
        db.execSQL(sql1, data); 

第三种,使用update(String table, ContentValues values, String whereClause, String[] whereArgs)

更新行数据,注意WhereClause为update的where条件,不带关键字where:如:

SQLiteDatabase db = this.getWritableDatabase();
  String where = BOOK_ID + " = ?";
  String[] whereValue = { Integer.toString(id) };

  ContentValues cv = new ContentValues();
  cv.put(BOOK_NAME, bookname);
  cv.put(BOOK_AUTHOR, author);
  db.update(TABLE_NAME, cv, where, whereValue);

目录
相关文章
|
4天前
|
缓存 人工智能 自然语言处理
我对比了8个Claude API中转站,踩了不少坑,总结给你
本文是个人开发者耗时1周实测的8大Claude中转平台横向评测,聚焦Claude Code真实体验:以加权均价(¥/M token)、内部汇率、缓存支持、模型真实性及稳定性为核心指标。
|
22天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
34934 57
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
16天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
15341 44
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
12天前
|
人工智能 JavaScript Ubuntu
低成本搭建AIP自动化写作系统:Hermes保姆级使用教程,长文和逐步实操贴图
我带着怀疑的态度,深度使用了几天,聚焦微信公众号AIP自动化写作场景,写出来的几篇文章,几乎没有什么修改,至少合乎我本人的意愿,而且排版风格,也越来越完善,同样是起码过得了我自己这一关。 这个其实OpenClaw早可以实现了,但是目前我觉得最大的区别是,Hermes会自主总结提炼,并更新你的写作技能。 相信就冲这一点,就值得一试。 这篇帖子主要就Hermes部署使用,作一个非常详细的介绍,几乎一步一贴图。 关于Hermes,无论你赞成哪种声音,我希望都是你自己动手行动过,发自内心的选择!
2971 28
|
1天前
|
云安全 人工智能 安全
|
1月前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
45897 160
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
7天前
|
弹性计算 人工智能 自然语言处理
阿里云Qwen3.6全新开源,三步完成专有版部署!
Qwen3.6是阿里云全新MoE架构大模型系列,稀疏激活显著降低推理成本,兼顾顶尖性能与高性价比;支持多规格、FP8量化、原生Agent及100+语言,开箱即用。

热门文章

最新文章

下一篇
开通oss服务