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数据库的示例代码的更多相关文章

  1. 用SQL语句操作Sqlite数据库的示例代码

    import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.databa ...

  2. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  3. Android中操作SQLite数据库

    我又回到了安卓的学习当中,忙来忙去终于忙的差不多有时间做自己的事情了,这感觉实在是太棒了!!本来想写android的控件以及他们的监视器的,但是我查了查android的手册,基本上都能查到,但是查有些 ...

  4. Android实例-操作sqlite数据库之Grid显示图片(XE8+小米2)

    结果: 1.数据库文件,记得打包到程序中(assets\internal\). 操作方法: 1.新建firemonkey mobile application①菜单->File->New- ...

  5. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  6. Android 开发中 SQLite 数据库的使用

    SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP, ...

  7. android中与SQLite数据库相关的类

    为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...

  8. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  9. UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库

    在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLit ...

随机推荐

  1. 【Distributed】互联网安全架构

    一.常见Web安全漏洞 1.1 XSS攻击 什么是XSS攻击手段 如何防御XSS攻击 1.2 SQL注入攻击 什么是SQL注入 SQL注入防攻击手段 MyBatis #与$区别 1.3 Http请求防 ...

  2. Linux基础篇之CentOS的网络配置(DHCP,静态)

    1.启动系统,使用用户名.密码登录系统:  2. 配置网卡(DHCP获取IP地址.静态手动配置IP地址): 网卡的默认信息  DHCP模式修改为(下图): 静态IP地址修改为(下图): 无论哪种配置, ...

  3. GOLANG多态的特征是通过接口来实现的 GOLANG多态形式之一:多态参数

    GOLANG多态的简单实现 //多态的特征是通过接口来实现的 //多态形式之一:多态参数 package main import( "fmt" _"sort" ...

  4. VS---《在VS2010中 使用C++创建和使用DLL》(001)

    VS---<在VS2010中 使用C++创建和使用DLL>(001) 需要学习制作和使用动态库,现在知道:DLL调用有两种方式,一种是静态调用,另外一种是动态调用.详细的还不算明白,等后期 ...

  5. anaconda环境---ubuntu下重装

    anaconda环境---ubuntu下重装 @wp20190312 为何重装? 配置一个环境,意外发现conda命令不好用了,提示“找不到conda模块”,整个conda虚拟环境中的工程项目无法使用 ...

  6. gerapy+scrapyd组合管理分布式爬虫

    Scrapyd是一款用于管理scrapy爬虫的部署和运行的服务,提供了HTTP JSON形式的API来完成爬虫调度涉及的各项指令.Scrapyd是一款开源软件,代码托管于Github上. 点击此链接h ...

  7. SQL 归纳

    查询父节点的所有子节点: SELECT * FROM menu m START WITH m.ID_ = '402882836068695f0160688eebf70006' CONNECT BY m ...

  8. poj3694 Network[边双缩点+树剖/并查集]

    首先同一个点双内部的加边肯定不影响..所以先缩点成树,然后每次加一条边,这条对应的树上路径上所有边就都不是桥了,且每次操作独立作用,不相互影响(不过有可能本来一条边已经不是桥了又被标记了一次),所以每 ...

  9. Nginx的TCP/UDP调度器

    安装nginx [root@proxy ~]# yum –y install gcc pcre-devel openssl-devel //安装依赖包 [root@proxy ~]# .tar.gz ...

  10. Codeforces Round #455 (Div. 2) D题(花了一个早自习补了昨晚的一道模拟QAQ)

    D. Colorful Points You are given a set of points on a straight line. Each point has a color assigned ...