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. mac os x 之通过远程主机在nginx上部署web静态页面

    1.mac使用ssh命令登陆远程主机 因为苹果mac os x自带ssh命令,所以我们只需打开终端输入 $ ssh user@remote 在这之前最好在服务器上上传自己的ssh key,避免每次登陆 ...

  2. Sql数据库不能频繁连接

    这个问题怎么说呢,我频繁的读一个json文件,所以就频繁的去连接了数据库.所以导致了数据库后来就不工作了(罢工?O(∩_∩)O哈哈~) 解决办法是加一个判断语句,如果是空的就连接,否则就别一直连接了. ...

  3. 【跟我学apache-commons】【四】commons-io的使用

    commons-io是一款处理io流的工具,封装了很多处理io流和文件的方法,可以大大简化我们处理io流和操作文件的代码.从common-io的官方使用文档可以看出,它主要分为工具类.尾端类.行迭代器 ...

  4. AngularJS总结

    因为最近想学习一下ionic框架,了解到ionic是基于AngularJS语法,并且通过SASS构建应用程序,之前自己一直用Vue框架,还有Less,刚刚好趁此机会,学习一下AngularJS与SAS ...

  5. JIRA项目管理搭建

    部署JIRA 7.2.2 for Linux 转自:http://www.yfshare.vip/2017/05/09/%E9%83%A8%E7%BD%B2JIRA-7-2-2-for-Linux/ ...

  6. 如何修改Linux的TTL值

    原文地址:http://www.linuxidc.com/Linux/2011-11/47701.htm 网络黑客如果用ping命令去探测  一个主机,根据TTL基数可以推测操作系统的类型.对于一个没 ...

  7. bzoj千题计划295:bzoj3140: [Hnoi2013]消毒

    http://www.lydsy.com/JudgeOnline/problem.php?id=3140 如果只有两维,那就是二分图最小点覆盖 现在是三维,但是a*b*c<=5000,说明最小的 ...

  8. Why do we make statistics so hard for our students?

    Why do we make statistics so hard for our students? (Warning: long and slightly wonkish) If you’re l ...

  9. ASP.NET MVC学习(二)之控制器Controller

    1.控制器 Controller接收用户请求,将Model和View匹配在一起,共同完成用户请求.它是一个分发器,通过选择不同的Model.View,可以决定完成不同的用户请求. 但Controlle ...

  10. mongoDB - 日常操作四

    python 使用 mongodb easy_install pymongo # 安装(python2.+) import pymongo connection=pymongo.Connection( ...