SQLite在Android程序中的使用方法,SQLite的增删查改方法
Sqlite:
1.一款用来实现本地数据存储的轻量级数据管理工具,是众多用来实现数据库管理的工具之一。
2.Android已经将SQLite的代码功能吸收在它的系统中,我们可以直接在Android程序中使用SQLite的语句来创建数据库,并实现数据库的增删查改
SQLite的简单使用方法:
如何获得一个数据库的class模板,并设定数据库里的数据结构:
自己新建一个类,继承SQLiteOpenHelper,并重写构造方法,oncreate(),onUpgrade()
自定义类的代码实现方法和构造方法的原始模板解析:
public class Database extends SQLiteOpenHelper {
public Database(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
//Context
//String name "创建数据库的名字"
//SQLiteDatabase.CursorFactory factory "在数据库中查找是的光标(相当于数组中的下标)"
// int Version "数据库的版本信息"
}
@Override
public void onCreate(SQLiteDatabase db) {
//在创建数据库的时候调用
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//每次启动数据库会检测数据库的版本信息,如果版本有变动就会执行此方法
}
}
用来实现数据库的自定义类的具体代码:
public class Data extends SQLiteOpenHelper
public Data(Context context) {
//简单起见,直接指定了数据库的名字为DATA,光标信息为null,版本为1
//所以在自定义的类的构造方法中只有Context参数
//在调用父类构造方法的时候,给定固定的参数来简化数据库创建
super(context,"DATA", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建数据库建构内容的语句,具体解析在下文整理
db.execSQL("CREATE TABLE user("+
"_id INTEGER PRIMARY KEY AUTOINCREMENT," +
"name TEXT DEFAULT \"\"," +
"sex TEXT DEFAULT \"\")");
//以上的语句给出了一个名为user的数据库结构对象,里面包含INTERGER类型的_id信息,并自增
//TEXT数据类型的name
//text数据类型的sex
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//由于给出了版本参数信息为固定的1,所以不会执行数据库更新操作
}
}
自己重写了数据库的模板后,如何实现数据库的使用和管理:
1.利用自定义的数据库类来新建一个数据库对象,
2.再通过新建的数据库得到可读的数据库对象和可写的数据库对象,
新建ContentValues对象向获得的可写数据库中添加内容,实现代码:
Private Data data = new Data(this);
private SQLiteDatabase dbWriter = db.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name",etName.getText().toString());
cv.put("sex",etSex.getText().toString());
//insert方法的三个参数的意义分别是:插入数据表的名称,插入数据表的位置信息,插入的对象
dbWriter.insert("user",null,cv);
//每次使用完数据库之后,记得关闭数据库,类似I/O的关闭
dbWrite.close();
注:位置信息这里填的是null,具体运行方式尚不清楚,但看到这里的时候,有时间去研究一下
通过获得的可读数据库对象,在目标数据库中进行查找的方法实现代码:
SQLiteDatabase DB = db.getReadableDatabase();
//新建一个光标对象,指明在“user”数据表中查找,后面的参数是一系列限制条件,
//全部为null意味输出所有user中的数据
Cursor c = DB.query("user",null,null,null,null,null,null);
//当光标仍然能够向下一行运行的时候,执行数据库的读取操作
while (c.moveToNext()){
String name=c.getString(c.getColumnIndex("name"));
String sex=c.getString(c.getColumnIndex("sex"));
Toast.makeText(getApplicationContext(),name+"--"+sex,Toast.LENGTH_SHORT).show();
}
SQLite在Android程序中的使用方法,SQLite的增删查改方法的更多相关文章
- 在Android程序中使用已有的SQLite数据库
已经将这篇文章迁移至 Code问答,你也能够到这里查看这篇文章,请多多关注我的新技术博客CodeWenDa.com 在中文搜索中,没有找到一篇比較好的关于怎样在Android应用中使用自己事先创建好的 ...
- SSH框架的多表查询(方法二)增删查改
必须声明本文章==>http://www.cnblogs.com/zhu520/p/7773133.html 一:在前一个方法(http://www.cnblogs.com/zhu520/p ...
- python下sqlite增删查改方法(转)
sqlite读写 #coding=utf-8 import sqlite3 import os #创建数据库和游标 if os.path.exists(' test.db'): conn=sqli ...
- 如何在Vue中使用Mockjs模拟数据的增删查改
之前一直使用json-server在前端开发时,搭建本地数据接口测试,但有时又需要将做好的项目放于 github page上做项目演示.在本地时,json server很好使用,但一旦放在github ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 4.在MVC中使用仓储模式进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
- 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 在MVC中使用泛型仓储模式和依赖注入实现增删查改
标签: 原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository ...
随机推荐
- Spring Boot重要内容
首先POM配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- 什么是Maven项目
1.通俗理解Maven:https://blog.csdn.net/shuzhe66/article/details/45009175 个人总结: Maven项目会有pom文件! 当前的项目需要依赖其 ...
- 一十九条优雅Python编程技巧
1.交换赋值 #不推荐 temp = a a = b b = a #推荐 a , b = b , a #先生成一个元组(tuple)对象,然后在unpack 2.Unpacking #不推荐 l = ...
- jsonify
在flask中通过响应,将json数据显示在网页中,并且将Content-Type该为application/json格式 1,第一种方法: from flask import jsonify @ap ...
- 怎么解决mysql 执行SQL过长问题------------?
Could not execute JDBC batch update mysql中,in语句中参数个数是不限制的.不过对整段sql语句的长度有了限制(max_allowed_packet). 默认 ...
- 软件工程第四次作业 石墨文档IOS
待分析的产品:石墨文档IOS客户端 作业地址: https://edu.cnblogs.com/campus/nenu/2016CS/homework/2505 第一部分 调研, 评测 1.下载并 ...
- Centos7 安装Nginx 防火墙开放80端口给外网访问
Centos7的防火墙改成了firewall,不再叫iptables,开放端口的方法如下: firewall-cmd --zone=public --add-port=80/tcp --permane ...
- 硬件电路io口控制继电器电路
元件如下: 二极管 8050三极管 1K电阻 10K电阻 光耦817 5V继电器 各一个 ———————————————————————————————————— 电路图如下: 当IO是低电平的时候, ...
- SharpDevelope 在 Windows 7 SP1 with .net framework4.0 下编译时找不到resgen.exe 解决办法
如果在vs下编译正常,在SharpDevelope下编译报这个错误,可以更改编译时的.netframework版本和C#版本.在 Tool->Project Upgrade 进行项目转换后,一般 ...
- Java注解总结2
注解是Java元数据,可以理解成代码的标签,正确使用能极大的简化代码的编写逻辑,在各种框架代码中使用也越来越多. 一.注解的应用场景 生成doc文档: 编译器类型格式检查: 运行时处理如注入依赖等 二 ...