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数据库的增删改查的更多相关文章

  1. Android中Sqlite数据库进行增删改查

    今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...

  2. android 对sqlite数据库的增删改查等各种操作

    转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...

  3. Android学习---SQLite数据库的增删改查和事务(transaction)调用

    上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代 ...

  4. Android下利用SQLite数据库实现增删改查

    1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3:  sqlite3 数据库 4   接下来就可以进行数据库的sql语法 ...

  5. [Android] SQLite数据库之增删改查基础操作

        在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Un ...

  6. greendao对SQLite数据库的增删改查操作

    利用greendao操作数据库时,都是以对象或者对象的list来进行增删改查的操作,操作的结果都是用一个list来接收的!!! 1.增加一条记录 Stu stu01=new Stu();stu01.s ...

  7. SQLite数据库以及增删改查的案例

    Android使用开源的与操作系统无关的SQL数据库——SQLite 一:在命令行下创建数据库: 1.启动模拟器后,打开命令行,执行adb shell 2.进入所在工程目录 3.执行sqlite3 m ...

  8. andorid SQLite数据库的增删改查 和事务操作

    .xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

  9. Android,java,php开发最基本的知识,mysql sqlite数据库的增删改查代理,sql语句

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985转载请说明出处. 下面是代码: 增加:insert into 数据表(字段1,字段2,字段3) valu ...

随机推荐

  1. Advanced RESTClient插件安装 google浏览器

    在csdn下载插件,并解压. 然后在设置里找到扩展程序,打开并开启开发者模式,加载你刚刚解压的插件就可以. 我是用了蓝灯打开google的,成功后这样的

  2. webpack提取库

    有时候我们不想bundle.js过于大,想把一些库独立成文件单独拿出来 module.exports = { entry: { // bundle是我们要打包的项目文件的导出名字, app是入口js文 ...

  3. 第六节 事务XML方式[声明方式]

    事务管理: 管理事务,管理数据,数据完整性和一致性 事务[业务逻辑] : 由一系列的动作[查询书价格,更新库存,更新余额],组成一个单元[买书业务], 当我们动作当中有一个错了,全错~ ACID 原子 ...

  4. 【DS】排序算法之冒泡排序(Bubble Sort)

    一.算法思想 冒泡排序是排序算法中比较有意思的一种排序方法,也很简单.其算法思想如下: 1)比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2)对每一对相邻元素作同样的工作,从开始第一对到结尾 ...

  5. bzoj千题计划272:bzoj4557: [JLoi2016]侦察守卫

    http://www.lydsy.com/JudgeOnline/problem.php?id=4557 假设当前到了x的子树,现在是合并 x的第k个子树 f[x][j] 表示x的前k-1个子树该覆盖 ...

  6. 使用 maven 搭建web开发基本架构

    我觉得可能,对于还没有使用过 IDEA 进行开发的童鞋来说,直接撸代码是有些尴尬的.那么我会把示例代码之前的那些事再在这里写一遍 按图步骤进行即可进行基本项目结构搭建 现在基本流行 maven 管理项 ...

  7. 20155201 2016-2017-2 《Java程序设计》第五周学习总结

    20155201 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 第八章 异常处理 程序设计本身的错误,建议使用Exception或其子类实例来表现,称错误处 ...

  8. 关于升级程序版本时version与build修改的问题

    CHENYILONG Blog 关于升级程序版本时version与build修改的问题 #问题#从V1.0升级到V1.0.1.version是一定要改的,那么build需要修改吗? #解答#一般习惯上 ...

  9. HDU 1869 六度分离 最短路

    解题报告: 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为“小世界现象(small world phenomenon)”的著名假说,大意是说,任何2个素不相识的人中间最多只隔着6个人, ...

  10. 如何使用optipng压缩png图片

    OptiPNG – Google推荐的png图片无损压缩工具下载及使用教程 2014年08月24日 实用软件 暂无评论 optipng png图片无损压缩工具介绍: optipng png图片无损压缩 ...