当前位置: 首页 > news >正文

Android存储方式之SQLite的使用

Android提供了五种存储方式,分别是文件、sharedPreference、网络、SQLite、ContentProvider。SQLite是一种轻型数据库,具有独立性、隔离性、跨平台、多语言接口、安全性等优点,目前应用较为广泛。现在主要说一下在Android中SQLite的使用。

首先,我新建一个数据库操作类DataBaseHelper,让他继承自SQLiteOpenHelper,然后复写其中的两个方法onCreate和onUpgrade。

 1 package com.example.sqlitedb;
 2 
 3 import android.content.Context;
 4 import android.database.sqlite.SQLiteDatabase;
 5 import android.database.sqlite.SQLiteDatabase.CursorFactory;
 6 import android.database.sqlite.SQLiteOpenHelper;
 7 
 8 public class DataBaseHelper extends SQLiteOpenHelper{
 9     
10     private final static String DBName="sqlite3.db";
11     private final static String TableName="city";
12     private final static String firstname="provincial";
13     private final static String lastname="number";
14 
15     public DataBaseHelper(Context context, String name, CursorFactory factory,
16             int version) {
17         super(context, DBName, factory, version);
18         // TODO Auto-generated constructor stub
19     }
20 
21     @Override
22     public void onCreate(SQLiteDatabase db) {
23         //创建表
24         String sql=("CREATE TABLE"+TableName+"(INTEGER PRIMARY KEY AUTOINCREMENT,"+firstname+" VARCHAR, "+lastname+" SMALLINT)");
25         db.execSQL(sql);
26     }
27 
28     @Override
29     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
30         // 删除表
31         String sql = "DROP TABLE IF EXISTS " + TableName; 
32         db.execSQL(sql);  }
35 
36 }

然后,使用sql语句来实现一些常用的SQLite的操作,具体如下:

 1     @Override
 2     public void onCreate(SQLiteDatabase db) {
 3           //创建表
 4           String sql="CREATE TABLE city (INTEGER PRIMARY KEY AUTOINCREMENT, provincial VARCHAR, number SMALLINT)";
 5           db.execSQL(sql);
 6           //插入数据
 7           //方法1:使用execSQL
 8           String sql1="insert into city (firstname,lastname) values ('北京','20')";
 9           db.execSQL(sql1);
10           //方法2:使用insert
11           ContentValues cv=new ContentValues();
12           cv.put("provincial", "天津");
13           cv.put("number", 30);
14           db.insert("city", null, cv);
15           //修改数据
16           //1.使用execSQL
17           String sql2="update city set lastname = '25' where provincial='天津'";
18           db.execSQL(sql2);
19           //2.使用insert
20           ContentValues cv1=new ContentValues();
21           cv1.put("provincial", "北京");
22           cv1.put("number", 30);
23           db.insert("city", null, cv);
24           //删除数据
25           String sql3 = "delete from city where provincial='北京'";
26           db.execSQL(sql3);
27           //关闭数据库
28           db.close();
29     }

执行以上代码,会在/data/data/com.example.sqlitedb/databases目录下生成一个名为"sqlite3.db"的数据库文件。

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Birdmafly/p/3667759.html

相关文章:

  • Redis项目实战 .net StackExchange.Redis
  • [Json.net]快速入门
  • getRequestURI,getRequestURL的区别
  • 2018年测试状况调查
  • 一个CCIE的梦想(转)
  • 如何快速找到多个字典中的公共键(key)
  • form表单的onclick与submit提交顺序
  • Linux下的五种错误配置
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • 关于研发成本的一些思考
  • ElasticSearch学习(9)-Java接口查询操作
  • 转载:C/C++关于string.h头文件和string类
  • 开源USM之HIDS ossec
  • SVN的标准目录结构:trunk、branches、tags(转)
  • hdu 2844 混合背包【背包dp】
  • @angular/forms 源码解析之双向绑定
  • 2017届校招提前批面试回顾
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • github从入门到放弃(1)
  • Mac转Windows的拯救指南
  • maya建模与骨骼动画快速实现人工鱼
  • Meteor的表单提交:Form
  • MYSQL 的 IF 函数
  • SpingCloudBus整合RabbitMQ
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • vue 个人积累(使用工具,组件)
  • 大数据与云计算学习:数据分析(二)
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 深度学习入门:10门免费线上课程推荐
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 我建了一个叫Hello World的项目
  • 写代码的正确姿势
  • 原生js练习题---第五课
  • 最近的计划
  • 【云吞铺子】性能抖动剖析(二)
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • "无招胜有招"nbsp;史上最全的互…
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (2)Java 简介
  • (3)STL算法之搜索
  • (70min)字节暑假实习二面(已挂)
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (转)大型网站架构演变和知识体系
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • ./configure、make、make install 命令
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET MVC 验证码
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .Net中wcf服务生成及调用
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法