创建数据库:

1. 创建一个类继承SQLiteOpenHelper
2. 创建继承对象 new SQLiteOpenHelper()
3. 用创建的对象获取可写或者可读的SQLiteDatabase
4. 用得到的SQLiteDatabase执行sql语句
* 手动写sql语句
* 调用内置的sql语句API

  • 步骤1详解:

    *一个继承的SQLiteOpenHelper类

    ```java
    package com.fmy.sql.db; import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log; public class MyOpenHelper extends SQLiteOpenHelper { static final String DPNAME = "info.db";
    static final int VERSION = 1; public MyOpenHelper(Context context, String name, CursorFactory factory, int version) {
    super(context, name, factory, version);
    } public MyOpenHelper(Context context) {
    super(context, DPNAME, null, VERSION);
    } @Override
    public void onCreate(SQLiteDatabase db) {
    Log.e("fmy", "被创建了");
    } @Override
    public void onOpen(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    super.onOpen(db);
    Log.e("fmy", "数据库被打开了");
    } @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } ```

  • 步骤2详解:

    *创建继承对象 new SQLiteOpenHelper()
MyOpenHelper myOpenHelper = new MyOpenHelper(this);

  • 步骤3详解:

    *用创建的对象获取可写或者可读的SQLiteDatabase
SQLiteDatabase db = myOpenHelper.getReadableDatabase();
  1. 用得到的SQLiteDatabase执行sql语句

    • 手动写sql语句执行

package com.fmy.sql;
import com.fmy.sql.db.MyOpenHelper; import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); } public void create(View v) {
MyOpenHelper myOpenHelper = new MyOpenHelper(this);
SQLiteDatabase db = myOpenHelper.getReadableDatabase();
Log.e("fmy", "创建表");
db.execSQL("create table if not exists person(_id INTEGER primary key autoincrement,name varchar,age int)");
db.close();
myOpenHelper.close();
} public void insert(View v) {
MyOpenHelper myOpenHelper = new MyOpenHelper(this);
SQLiteDatabase db = myOpenHelper.getReadableDatabase();
Log.e("fmy", "创建表");
String sql = "insert into person (name,age) values()";
for (int i = 0; i < 50; i++) {
db.execSQL("insert into person (name,age) values(" + "'张三" + i + "'" + "," + i + ")");
Log.e("fmy", "创建表");
}
db.close();
myOpenHelper.close();
} public void update(View v) {
MyOpenHelper myOpenHelper = new MyOpenHelper(this);
SQLiteDatabase db = myOpenHelper.getReadableDatabase();
Log.e("fmy", "跟新表");
String sql = "UPDATE person SET name = '李四' WHERE _id=1";
db.execSQL(sql);
db.close();
myOpenHelper.close();
} public void delete(View v) {
MyOpenHelper myOpenHelper = new MyOpenHelper(this);
SQLiteDatabase db = myOpenHelper.getReadableDatabase();
Log.e("fmy", "创建表");
String sql = "DELETE FROM person WHERE _id=2";
db.execSQL(sql);
db.close();
myOpenHelper.close();
} public void select(View v) {
Log.e("fmy", "查询");
MyOpenHelper myOpenHelper = new MyOpenHelper(this);
SQLiteDatabase db = myOpenHelper.getReadableDatabase();
String sql = "select *from person";
Cursor cursor = db.rawQuery(sql,null);
while (cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex("name"));
Log.e("fmy", "查询"+name);
}
db.close();
myOpenHelper.close();
} } ```
* API 增删改查 ```java
package com.fmy.dbapi; import com.fmy.dbapi.db.MyOpenHelper; import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); } public void create(View v) {
MyOpenHelper myOpenHelper = new MyOpenHelper(this);
SQLiteDatabase db = myOpenHelper.getReadableDatabase();
Log.e("fmy", "创建表");
db.execSQL("create table if not exists person(_id INTEGER primary key autoincrement,name varchar,age int)");
db.close();
myOpenHelper.close();
} public void insert(View v) {
MyOpenHelper myOpenHelper = new MyOpenHelper(this);
SQLiteDatabase db = myOpenHelper.getReadableDatabase();
Log.e("fmy", "插入表");
String sql = "insert into person (name,age) values()"; ContentValues value = new ContentValues(); for (int i = 0; i < 50; i++) {
value.put("name", "张三" + i);
long insert = db.insert("person", null, value);
Log.e("fmy", "插入表" + insert);
}
db.close();
myOpenHelper.close();
} public void update(View v) {
MyOpenHelper myOpenHelper = new MyOpenHelper(this);
SQLiteDatabase db = myOpenHelper.getReadableDatabase();
ContentValues values = new ContentValues();
values.put("name", "李四");
int update = db.update("person", values, "_id=?", new String[] { "1" });
Log.e("fmy", "跟新表" + update);
db.close();
myOpenHelper.close();
} public void delete(View v) {
MyOpenHelper myOpenHelper = new MyOpenHelper(this);
SQLiteDatabase db = myOpenHelper.getReadableDatabase();
Log.e("fmy", "创建表");
db.delete("person", "_id=?", new String[] { "2" });
db.close();
myOpenHelper.close();
} public void select(View v) {
Log.e("fmy", "查询");
MyOpenHelper myOpenHelper = new MyOpenHelper(this);
SQLiteDatabase db = myOpenHelper.getReadableDatabase(); Cursor cursor = db.query("person", null, null, null, null, null, null, "1,2");
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
Log.e("fmy", "查询" + name);
}
db.close();
myOpenHelper.close();
} }

13 SQLiteOpenHelper SQLiteDatabase详解的更多相关文章

  1. 第7.13节 案例详解:Python类变量

    第7.13节 案例详解:Python类变量 上节介绍了类变量的定义和使用方法,并举例进行了说明.本节将通过一个更完整的例子来说明. 一.    定义函数dirp def dirp(iter): ret ...

  2. java代码之美(13)--- Predicate详解

    java代码之美(13)--- Predicate详解 遇到Predicate是自己在自定义Mybatis拦截器的时候,在拦截器中我们是通过反射机制获取对象的所有属性,再查看这些属性上是否有我们自定义 ...

  3. java代码(13) ---Predicate详解

    Predicate详解 遇到Predicate是自己在自定义Mybatis拦截器的时候,在拦截器中我们是通过反射机制获取对象的所有属性,在查看这些属性上是否有我们自定义的UUID注解 如果有该注解,那 ...

  4. Jmeter查看结果树之查看响应的13种方法[详解]

    查看结果树查看响应有哪几种方法,可通过左侧面板底部的下拉框选择 1.Text 查看结果树中请求的默认格式为text,会显示请求的取样器结果.请求.响应数据3个部分内容. 取样器结果: 默认Raw视图, ...

  5. 第 13 章 StringTable详解

    目录 第 13 章 StringTable 1.String 的基本特性 1.1.String 概述 1.2.String 的基本特征 1.3.String 的底层结构 2.String 的内存分配 ...

  6. Java基础13:反射详解

    本节主要介绍Java反射的原理,使用方法以及相关的技术细节,并且介绍了关于Class类,注解等内容. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech ...

  7. python标准库介绍——13 types 模块详解

    == types 模块== ``types`` 模块包含了标准解释器定义的所有类型的类型对象, 如 [Example 1-86 #eg-1-86] 所示. 同一类型的所有对象共享一个类型对象. 你可以 ...

  8. 13、SparkContext详解

    一.SparkContext原理 1.图解 二.SparkContext源码 1.TaskScheduler创建 ###SparkContext.scala // Create and start t ...

  9. 13.Python字符串详解(包含长字符串和原始字符串)

    简单地理解,字符串就是“一串字符”,也就是用引号包裹的任何数据,比如“Hello,Charlie”是一个字符串,“12345”也是一个字符串. Python 要求,字符串必须使用引号括起来,可以使用单 ...

随机推荐

  1. 【luoguP4006 清华集训2017】小Y和二叉树

    题目描述 小 Y 是一个心灵手巧的 OIer,她有许多二叉树模型. 小 Y 的二叉树模型中,每个结点都具有一个编号,小 Y 把她最喜欢的一个二叉树模型挂在了墙上,树根在最上面,左右子树分别在树根的左下 ...

  2. 51Nod 1555 布丁怪

    题目描述: 布丁怪这一款游戏是在一个n×n 的矩形网格中进行的,里面有n个网格有布丁怪,其它的一些格子有一些其它的游戏对象.游戏的过程中是要在网格中移动这些怪物.如果两个怪物碰到了一起,那么他们就会变 ...

  3. 【集训第二天·翻水的老师】--ac自动机+splay树

    今天是第二天集训.(其实已经是第三天了,只是昨天并没有机会来写总结,现在补上) 上午大家心情都很愉快,因为老师讲了splay树和ac自动机. 但到了下午,我们的教练竟然跑出去耍了(excuse me? ...

  4. MYSQL 二进制安装

    系统环境:CentOs6.7 i386 Mysql版本:mysql-5.6.36 root登录linux cd pwd #/root/ wget http://mirrors.sohu.com/mys ...

  5. Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/ 项目结构 结构分析: Spring-boot-pr ...

  6. new File()

    首先 File 类是对文件系统的映射 并不是硬盘上真实的文件所以 new File("xxx.xxx") 只是在内存中创建File文件映射对象,而并不会在硬盘中创建文件 如果需要创 ...

  7. linux安装ftp

    安装vsftpd 1.以管理员(root)身份执行以下命令 1.  yum install vsftpd 2.设置开机启动vsftpd ftp服务 1.  chkconfig vsftpd on 3. ...

  8. 两个App之间调起通信

    前言 经常使用一些app的分享功能,比如点击QQ分享,就从app打开(跳转到)QQ,然后分享完之后又回到我们的app,那么这是怎样实现的呢? 假设有这么一个需求,由app1跳转到app2,当app2完 ...

  9. 给定桩号获取纵断面中的高程值(c# for civil3d)

    通过civil3d提供的api,也就是纵断面Profile类提供的方法---public double ElevationAt(double station),就可以很轻松的获取纵断面对象某桩号处的高 ...

  10. JavaScript的BOM、DOM操作、节点以及表格(二)

    BOM操作 一.什么是BOM BOM(Browser Object Model)即浏览器对象模型.     BOM提供了独立于内容 而与浏览器窗口进行交互的对象:     BOM由一系列相关的对象构成 ...