SQLiteOpenHelper数据库的两套API

目录

Android:sqliteopenHelper数据库的两套API

一、目录结构

二、类:MainActivity

三、类:MyopenHelper

四:activity_main.xml


一、目录结构

二、类:MainActivity

package com.example.sqliter;import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;public class MainActivity extends Activity {MyopenHelper myopenHelper = new MyopenHelper(this);@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);SQLiteDatabase readableDatabase = myopenHelper.getReadableDatabase();}//1.查询public void query(View V) {//获取databaseSQLiteDatabase database = myopenHelper.getReadableDatabase();String sql = "select * from info";Cursor rawQuery = database.rawQuery(sql, null);while(rawQuery.moveToNext()) {//取出当前行的name列,索引为1String name = rawQuery.getString(1);//取出当前行的phone列,索引为2,通过列的名字获取列的索引String phone = rawQuery.getString(rawQuery.getColumnIndex("phone"));System.out.println("name:"+name+"  phone:"+phone);}rawQuery.close();database.close();}//2.插入public void insert(View V) {//获取databaseSQLiteDatabase database = myopenHelper.getReadableDatabase();String sql = "insert into info (name,phone,age) values('aaa',111,10)";database.execSQL(sql );sql = "insert into info (name,phone,age) values('bbb',222,20)";database.execSQL(sql );//关闭数据库database.close();}//3.删除public void delete(View V) {SQLiteDatabase database = myopenHelper.getReadableDatabase();String sql = "delete from info where name = 'bbb'";database.execSQL(sql );database.close();}//4.更新public void update(View V) {SQLiteDatabase database = myopenHelper.getReadableDatabase();String sql = "update info set phone='333' where name = 'aaa'";database.execSQL(sql );database.close();}/** * *///1.查询public void query1(View V) {//获取databaseSQLiteDatabase database = myopenHelper.getReadableDatabase();Cursor cursor = database.query("info", new String[] {"name","phone"}, "name = ?",new String[] {"qqq"} , null, null, null, null);while(cursor.moveToNext()) {String string = cursor.getString(cursor.getColumnIndex("phone"));Toast.makeText(this, "phone查询结果:"+string, Toast.LENGTH_SHORT).show();}cursor.close();database.close();}//2.插入public void insert1(View V) {//获取databaseSQLiteDatabase database = myopenHelper.getReadableDatabase();//默认字段String nullColumnHack = "name";//通过key value封装要插入的数据ContentValues values = new ContentValues();values.put("name", "qqq");values.put("phone", 1111);values.put("age", 01);long id = database.insert("info", nullColumnHack, values);System.out.println("插入第:"+id+"行!");if(id != -1) {Toast.makeText(this, "插入第:"+id+"行!", Toast.LENGTH_SHORT).show();}else {Toast.makeText(this, "插入失败!", Toast.LENGTH_SHORT).show();}database.close();}//3.删除public void delete1(View V) {SQLiteDatabase database = myopenHelper.getReadableDatabase();//删除整个表,后两个参数置为nullString table = "info";String whereClause = "name = ?";       String[] whereArgs = {"aaa"};//返回值:删除了几条数据int delete = database.delete(table, whereClause, whereArgs);Toast.makeText(this, "删除了"+delete+"条数据!", Toast.LENGTH_SHORT).show();database.close();}//4.更新public void update1(View V) {SQLiteDatabase database = myopenHelper.getReadableDatabase();ContentValues values = new ContentValues();values.put("phone", 2222);int update = database.update("info", values , "name = ?" , new String[] {"qqq"} );Toast.makeText(this, "删除了"+update+"条数据!", Toast.LENGTH_SHORT).show();database.close();}}

三、类:MyopenHelper

package com.example.sqliter;import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;public class MyopenHelper extends SQLiteOpenHelper {public MyopenHelper(Context context) {super(context, "demo.db", null, 3);// TODO Auto-generated constructor stub}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stub//sqlite不管传入的是什么类型的参数,都是以字符串类型存储的db.execSQL("create table info(_id integer primary key autoincrement, name varchar(20), phone varchar(20))");}//库升级@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub//修改数据库db.execSQL("alter table info add age inteher");System.out.println("oldVersion:"+oldVersion +" newVersion:" +oldVersion);}//数据库降级@Overridepublic void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub//super.onDowngrade(db, oldVersion, newVersion);}
}

四:activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:orientation="vertical"tools:context="com.example.sqliter.MainActivity" ><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="查询"android:onClick="query"/><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="插入"android:onClick="insert"/><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="删除"android:onClick="delete"/><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="更新"android:onClick="update"/><View android:layout_width="match_parent"android:layout_height="2dp"android:background="#88007700"/><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="查询1"android:onClick="query1"/><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="插入1"android:onClick="insert1"/><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="删除1"android:onClick="delete1"/><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="更新1"android:onClick="update1"/>
</LinearLayout>

Android:SQLiteOpenHelper数据库的两套API相关推荐

  1. JMockit两种API实现不同方面mock示例

    1.JMockit的两套API实现方式 JMockit提供了两套API,一套叫做Expectations,用于基于行为的单元测试:一套叫做MockUp,用于基于状态的单元测试.    ①.Expect ...

  2. 切图iOS和android区别,用sketch也要画iOS和android两套吗|Sketch如何用一套设计稿做iOS和Android两个版本 - PS下...

    很多Sketch 新手刚进入接触UI设计的时候,不知道如何用一套设计稿来处理IOP和安卓两个系统的图,那么如何用一套设计稿较快速地做 iOS 和 Android 两个版本 app?是不是要做两套呢?然 ...

  3. Android SQLite数据库的详细使用

    SQLite 简介 SQLite 是一款内置到移动设备上的轻量型的数据库,是遵守ACID(原子性.一致性.隔离性.持久性)的关联式数据库管理系统,多用于嵌入式系统中 SQLite 数据库是无类型的,可 ...

  4. android SQLite数据库的使用

    今天,简单讲讲android如何使用SQLite数据库.  最近,自己在做一个功能时又用到了SQLite数据库,发现自己还是掌握的不很全面.其实之前的app里面也一直用到了数据库,但是自己没有花时 ...

  5. android SQLite数据库总结

    from: http://wlhejj.iteye.com/blog/983998 一.SQLite简介 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NUL ...

  6. android SQLite数据库总结

    一.SQLite简介 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对 ...

  7. Android SQLite数据库版本升级(分逐级升级和跨版本升级)

    参考:Android Sqlite数据库跨版本升级 保存之前数据 本文说的数据库升级是基于Android原生APISQLiteOpenHelper实现的逻辑,不涉及第三方库.其实如果使用官方推荐的Ro ...

  8. Android Sqlite数据库详解

    在整理ContentProvider知识点之前要先整理Sqlite数据库的知识,因为ContentProvider中要使用到数据库. 步入正题:Sqlite的起源是一艘军舰上,一个数据库程序员觉得潜艇 ...

  9. 利用SQLChiper对Android SQLite数据库加密

    利用SQLChiper对Android SQLite数据库加密 前言: 上篇文章讲了Android studio+SQLCipher加密SQLite数据库的几个坑,跳过这几个坑,那么SQLCipher ...

最新文章

  1. ESXi主机遗忘密码重置密码
  2. cisco IOS及配置的备份及升级
  3. 从windows server的文件服务到分布式文件服务(二)
  4. (软件工程复习核心重点)第六章实现和测试-第七节:黑盒测试
  5. 入侵检测系统_GIDS:基于GAN的车载网络入侵检测系统
  6. php 通过ajax上传文件,php – 通过ajax上传文件
  7. mysql Table 'performance_schema.session_variables' doesn't exist
  8. html 画布 重置,html5清空画布的方法有哪些
  9. Linux堆内存管理深入分析 (上半部)【转】
  10. 我的SQL相关TIPS
  11. c语言词法分析程序实验报告,词法分析器实验报告
  12. 深入解读HTTP3的原理及应用
  13. 征服面试官的50道Redis高频通关面试题
  14. ayit第十周训练g题
  15. 【taro】taro如何打开微信小程序
  16. 怎么在线快速将多张CAD图纸转换成低版本DXF格式?
  17. ERP生产管理软件系统的主要功能模块是什么?
  18. Bootstrap中一些常用的类名
  19. CSAPP实验1:datalab
  20. matlab 图像尺寸 批量,matlab 图像批量修改图像大小

热门文章

  1. redis的5种数据结构和基本操作
  2. 从零搭建ES搜索服务(一)基本概念及环境搭建
  3. yii2过滤器(filter)
  4. 51nod 1065 最小正子段和 (贪心)
  5. 纯css3特效实现的文字亮光
  6. 前端开发:模块化 — 高效重构
  7. HP刀箱无法识别刀片的处理方法
  8. 使用FFTW3做二维DFT的示例代码
  9. C#数据库类(zz)
  10. (工作中)Apache常见配置