Android对Sqlite数据库的增删改查
SqLite 数据库
Google 为我们提供了sqlite相关的api
SqLiteOpenHelper 这是一个抽象的类 如果想要使用的话,需要其他的类去继承他
SqLiteDatabase 类 暴露出了一系列的方法,为我们对数据库的操作
实现SqLiteOpenHelper
public class MySqlLiteOpenHelper extends SQLiteOpenHel
public MySqlLiteOpenHelper(Context context, String
super(context, dbName, null, version);
}
/*
* 当数据第一次被创建的时候该方法会给执行
* 这个方法特别适合做表的初始化
* */
@Override
public void onCreate(SQLiteDatabase db) {
}
/*
* 当数据库的版本升级的时候会执行该方法
* 这个方法特别适合做表结构的修改
* 注意:数据库的版本正能增加不能降低 否则会抛异常
* */
@Override
public void onUpgrade(SQLiteDatabase db, int oldVe
}
}
SqLite 的增删改查
初始化
private MySqlLiteOpenHelper mySqlLiteOpenHelper;
private SQLiteDatabase sDB;
public final String TAG = "SqLiteActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sql_lite);
//这一步操作的时候数据库并不会被创建
mySqlLiteOpenHelper = new MySqlLiteOpenHelper(this, "db.db", 1);
//在这一步操作的时候数据库才会被读取或者创建 如果数据库不存在那么将会在/data/data/对应的包名 下建立一个databases目录其中包含刚刚创建的数据库以及其缓存文件
sDB = mySqlLiteOpenHelper.getWritableDatabase();
}
insert
//执行插入操作
@RequiresApi(api = Build.VERSION_CODES.N)
public void insert(View v) {
try {
/*
* 通过sql语句来插入数据
* 注意:下面是两种占位符的方式 如果是通过format方法来进行占位符操作需要对【单引号】使用【''】 * 进行转义
* 如果是通过exceSql方法进行拼接的话那么 是不需要加 【单引号】的
* */
//两种拼接sql语句的方式
String sql = MessageFormat.format("insert into userinfo (username,password) values(''{0}'',''{1}'')", "天王2121", "专刊需求到");
sDB.execSQL("insert into userinfo (username,password) values(?,?)", new String[]{"天王 1", "专刊需求到"});
//执行sql语句
sDB.execSQL(sql);
//如果sql语句不太熟练可以通过Google提供的方法进行插入操作
ContentValues values = new ContentValues();
values.put("username", "tianwang12121gaidihu");
values.put("password", "baotazhenheyao");
/*
* 执行插入
* 第二个参数是:如果为null 那么 如果values 是null 的话那么就会 向 数据库中插入一条null 行,如 * 果是可以的话 该参数一般为null 即可
* 返回值:返回主键的值 如果插入失败那么返回-1
* */
long pk= sDB.insert("userinfo", null, values);
values.clear();
Toast.makeText(this, "insert successfully!", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Log.i(this.TAG, e.toString());
}
}
Delete
public void delete(View v) {
//执行删除操作
try {
//返回被删除的行数
int count = this.sDB.delete("userinfo", "username='天王2121'", null);
Toast.makeText(this, String.valueOf(count), Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Log.i(this.TAG, e.toString());
}
}
Update
//执行更新操作
public void update(View v) {
//需要进行修改的内容
ContentValues values = new ContentValues();
values.put("password", "123456");
//参数: 需要进行更新操作的表 , 需要更新的内容, 过滤条件 ,过滤条件的值
//返回值: 返回受营销的行数
int count = this.sDB.update("userinfo", values, "_id>100", null);
values.clear();
Toast.makeText(this, String.valueOf(count), Toast.LENGTH_SHORT).show();
}
Query
//数据库的查询操作
public void select(View v) {
Cursor cursor = null;
//通过sql语句直接查询
//String sql = "select * from userinfo where _id>100";
//cursor = this.sDB.rawQuery(sql, null);
//通过Google提供的方法来进行查询操作
cursor = this.sDB.query("userinfo", new String[]{"_id", "username", "password"}, "_id > 100", null, null, null, null);
if (cursor != null) {
//打印获取到的内容
while (cursor.moveToNext()) {
Log.i(this.TAG, cursor.getString(cursor.getColumnIndex("_id")));
Log.i(this.TAG, cursor.getString(cursor.getColumnIndex("username")));
Log.i(this.TAG, cursor.getString(cursor.getColumnIndex("password")));
}
} else {
Toast.makeText(this, "我就是null了", Toast.LENGTH_SHORT).show();
}
}
Android对Sqlite数据库的增删改查的更多相关文章
- Android中Sqlite数据库进行增删改查
今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...
- android 对sqlite数据库的增删改查等各种操作
转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...
- Android学习---SQLite数据库的增删改查和事务(transaction)调用
上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代 ...
- Android下利用SQLite数据库实现增删改查
1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3: sqlite3 数据库 4 接下来就可以进行数据库的sql语法 ...
- [Android] SQLite数据库之增删改查基础操作
在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Un ...
- greendao对SQLite数据库的增删改查操作
利用greendao操作数据库时,都是以对象或者对象的list来进行增删改查的操作,操作的结果都是用一个list来接收的!!! 1.增加一条记录 Stu stu01=new Stu();stu01.s ...
- SQLite数据库以及增删改查的案例
Android使用开源的与操作系统无关的SQL数据库——SQLite 一:在命令行下创建数据库: 1.启动模拟器后,打开命令行,执行adb shell 2.进入所在工程目录 3.执行sqlite3 m ...
- andorid SQLite数据库的增删改查 和事务操作
.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...
- Android,java,php开发最基本的知识,mysql sqlite数据库的增删改查代理,sql语句
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985转载请说明出处. 下面是代码: 增加:insert into 数据表(字段1,字段2,字段3) valu ...
随机推荐
- MySQL命令行查询乱码解决办法
MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定问题,例如还停留在latin1 2.table的语系设定问题(包含character与collation) 3.客户端程式(例如 ...
- webGL和three.js的关系
如今浏览器的功能越来越强大,而且这些功能可能通过JavaScript直接调用.你可以用HTML5标签轻松地添加音频和视频,而且可以在HTML5画布上创建各种交互组件.现在这个功能集合里又有了一个新成员 ...
- SQL记录-PLSQL运算符
PL/SQL运算符 运算符是一个符号,告诉编译器执行特定的数学或逻辑操作. PL/SQL语言有丰富的内置运算符,运算符提供的以下几种类型: 算术运算符 关系运算符 比较运算符 逻辑运算符 字符串运算符 ...
- telegraf、influxDB、Grafana的安装与基本使用
目的理解influxDB的数据收集原理和方法为使用grafana分析数据及展示结作好准备介绍[收集数据] Telegraf 是一个用 Go 编写的代理程序,可收集系统和服务的统计数据,并写入到 Inf ...
- bzoj千题计划198:bzoj1084: [SCOI2005]最大子矩阵
http://www.lydsy.com/JudgeOnline/problem.php?id=1084 m=1: dp[i][j] 前i个数,选了j个矩阵的最大和 第i个不选:由dp[i-1][j] ...
- koa1.x获取原始body内容
Node版本比较老,koa1.x配合koa-body-parser,默认koa-body-parser会把请求数据转成json对象, 然而有的时候需要获取原始的内容,不要转换,看波koa-body-p ...
- Web性能优化系列(1):Web性能优化分析
本文由 伯乐在线 - 鸭梨山大 翻译,sunbiaobiao 校稿.未经许可,禁止转载!英文出处:gokulkrishh.github.io.欢迎加入翻译小组. 如果你的网站在1000ms内加载完成, ...
- 8个提高效率的CSS实用工具
CSS,也就是Cascading Style Sheets,推出于1997年,差不多是17年前,至此为我们开发网页大开方便之门,协助我们制作出一个又一个惊艳绝伦的网站设计和模板,提升了我们的创造能力, ...
- shell 循环数组
循环数组 ;i<${#o[*]};i++)) do echo ${o[$i]} done
- 第6月第4天 AVMutableComposition AVMutableVideoComposition
1. AVMutableComposition is a mutable subclass of AVComposition you use when you want to create a new ...