android Api操作SQLite数据库的示例代码
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; /**
* 创建数据库帮助类 extends SQLiteOpenHelper
*/
public class MyDbOpenHelper extends SQLiteOpenHelper { /**
* 构造方法
*
* @param context
* 上下文
* @param name
* 数据库名称
* @param factory
* null
* @param version
* 数据库的版本号 >=1
* 只能升级不能降级
*/
public MyDbOpenHelper(Context context) {
super(context,"Info.db",null,1);
} /**
* 第一次创建数据库的时候调用
* 适合初始化数据库的表
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table stu(_id integer primary key autoincrement,name varchar(20),num varchar(20),money varchar(20))");
} /**
* 数据库升级时,调用
* 修改数据库的表
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
System.out.println("onUpgrade");
}
}
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} public void trans(View v) {
// 1. 在内存中创建数据库帮助类的对象
MyDbOpenHelper helper = new MyDbOpenHelper(this);
// 2. 在磁盘上创建数据库文件
SQLiteDatabase db = helper.getWritableDatabase(); /* ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("money", "1");
values.put("num", 001);
db.insert("stu", null, values); ContentValues values1 = new ContentValues();
values1.put("name", "我");
values1.put("money", "100000000");
values1.put("num", 002);
db.insert("stu", null, values1);*/ try {
db.beginTransaction();//开启事务
//转账
ContentValues values = new ContentValues();
values.put("money", 1);
db.update("stu", values, "name=?", new String[]{"张三"}); //int a = 5/0;//模拟事务失败对结果的影响
ContentValues values1 = new ContentValues();
values1.put("money", 20000000);
db.update("stu", values1, "name=?", new String[]{"Me"}); db.setTransactionSuccessful();//事务操作成功
} catch (Exception e) {
}finally{
db.endTransaction();//关闭事务
} // 释放资源
db.close();
} public void insert(View v) {
// 1. 在内存中创建数据库帮助类的对象
MyDbOpenHelper helper = new MyDbOpenHelper(this);
// 2. 在磁盘上创建数据库文件
SQLiteDatabase db = helper.getWritableDatabase(); /**
* table :表名
* nullColumnHack:
*/
ContentValues values = new ContentValues();
values.put("name", "张三");
values.put("num", 123);
long id = db.insert("stu", null, values);
if (id == -1) {
Toast.makeText(this, "插入失败", 0).show();
}else {
Toast.makeText(this, "id="+id, 0).show();
}
// 释放资源
db.close();
} public void delete(View v) {
// 1. 在内存中创建数据库帮助类的对象
MyDbOpenHelper helper = new MyDbOpenHelper(this);
// 2. 在磁盘上创建数据库文件
SQLiteDatabase db = helper.getWritableDatabase();
int id = db.delete("stu", null, null);
if (id == 0) {
Toast.makeText(this, "删除失败", 0).show();
}else {
Toast.makeText(this, "id="+id, 0).show();
}
// 释放资源
db.close();
} public void update(View v) {
// 1. 在内存中创建数据库帮助类的对象
MyDbOpenHelper helper = new MyDbOpenHelper(this);
// 2. 在磁盘上创建数据库文件
SQLiteDatabase db = helper.getWritableDatabase(); /**
* table :表名
* values :修改的列
* whereClause :修改条件
* whereArgs :修改条件的占位符
*/
ContentValues values = new ContentValues();
values.put("name", "songxiaobao");
int id = db.update("stu", values, null, null);
if (id == 0) {
Toast.makeText(this, "删除失败", 0).show();
}else {
Toast.makeText(this, "id="+id, 0).show();
}
// 释放资源
db.close();
} public void query(View v){
// 1. 在内存中创建数据库帮助类的对象
MyDbOpenHelper helper = new MyDbOpenHelper(this);
// 2. 在磁盘上创建数据库文件
SQLiteDatabase db = helper.getReadableDatabase(); /**
* table :表名
* columns :要查询的列
* selection :查询条件
* selectionArgs :查询条件的占位符
* groupBy :分组
* having :条件
* orderBy :排序
*/
Cursor cursor = db.query("stu", new String[]{"name","num","_id","money"}, null,null,null,null,null); while(cursor.moveToNext()){
String id = cursor.getString(2);
String name = cursor.getString(0);
String num = cursor.getString(1);
String money = cursor.getString(3);
}
//释放资源
cursor.close();
// 释放资源
db.close();
}
}
android Api操作SQLite数据库的示例代码的更多相关文章
- 用SQL语句操作Sqlite数据库的示例代码
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.databa ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- Android中操作SQLite数据库
我又回到了安卓的学习当中,忙来忙去终于忙的差不多有时间做自己的事情了,这感觉实在是太棒了!!本来想写android的控件以及他们的监视器的,但是我查了查android的手册,基本上都能查到,但是查有些 ...
- Android实例-操作sqlite数据库之Grid显示图片(XE8+小米2)
结果: 1.数据库文件,记得打包到程序中(assets\internal\). 操作方法: 1.新建firemonkey mobile application①菜单->File->New- ...
- Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库
下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...
- Android 开发中 SQLite 数据库的使用
SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP, ...
- android中与SQLite数据库相关的类
为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库
在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLit ...
随机推荐
- 《Linux就该这么学》day4-6
继续学习打卡,这几天有事所以看视频补上了这几天的学习进度. day4:主要重点 tar打包和解压命令 tar -zxvf xxx.tar.gz 解压xxx.tar.gz (将xxx.tar.gz ...
- 自己手写实现Dubbo
目录 dubbo 简单介绍 为什么手写实现一下bubbo? 什么是RPC? 接口抽象 服务端实现 注册中心 消费者端: dubbo 简单介绍 dubbo 是阿里巴巴开源的一款分布式rpc框架. 为什么 ...
- 使用Tarjan进行缩点无向图
int From[maxn],Laxt[maxn],To[maxn<<2],Next[maxn<<2],cnt; int low[maxn],dfn[maxn],times,q ...
- Python&Selenium 数据驱动【unittest+ddt+json】
一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用json文件作为数据文件作为测试输入,最后生成html测试报告 二.json文件 [ ...
- udp单播,广播,多播实现(ReceiveFromAsync,SendToAsync)
注意:客户端和服务器实现基本一致,本地host和port和多播的host和port可以一样 (1)多播 1.将本地host加入多播组中,只有加入多播组的成员才能接受同组的节点发送的多播 Multica ...
- JavaScript教程——实例对象与 new 命令
典型的面向对象编程语言(比如 C++ 和 Java),都有“类”(class)这个概念.所谓“类”就是对象的模板,对象就是“类”的实例.但是,JavaScript 语言的对象体系,不是基于“类”的,而 ...
- 干物妹小埋 (离散化 + 线段树 + DP)
链接:https://ac.nowcoder.com/acm/contest/992/B来源:牛客网 题目描述 在之前很火的一个动漫<干物妹小埋>中,大家对小埋打游戏喝可乐的印象十分的深刻 ...
- hbase实践之写流程
内容提要 一.写入流程 初始化ZooKeeper Session,建立长连接,获取META Region的地址. 获取rowkey对应的Region路由信息:来自.meta. 写入region 如何快 ...
- Codeforces Round #587 (Div. 3) B. Shooting(贪心)
链接: https://codeforces.com/contest/1216/problem/B 题意: Recently Vasya decided to improve his pistol s ...
- Codeforces工具总结
本总结针对Linux用户,由于笔者一直使用Ubuntu系统打Codeforces 打Codeforcecs,想精确能力,打出究极罚时,可以考虑以下套餐 套餐一 vim选手 使用vim + fish + ...