Android_SQLite数据库增删改查操作
一:什么是SQLite?
在Android平台上,集成了一个嵌入式关系型轻量级的数据库。
二:什么时候用的数据库?
有大量相似机构的数据需要存储时。
三:如何创建一个数据库?
1.创建一个SqliteOpenHelper的子类
2.添加一个构造方法,用来指定数据库的名称,版本号
3.实现oncreat 方法,数据库第一次创建时被调用,特别适合做数据表的初始化
4.实现onUpgrade方法,当数据库版本升级时被调用,特别适合做表结构的修改。
5.要创建数据库,需要创建一个帮助类的实例对象,并调用其 getReadableDatabase getWritableDatabase 方法
实例代码如下:
MyOpenHelpter.java
public class MyOpenHelpter extends SQLiteOpenHelper {
//添加一个构造方法,用来指定数据库的名称,版本号
public MyOpenHelpter(Context context) {
super(context, "userInfo.db", null, 1);
}
//实现oncreat 方法,数据库第一次创建时被调用,特别适合做数据表的初始化
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table info (_id integer primary key autoincrement,name varchar(20),phone varchar(11))");
}
//实现onUpgrade方法,当数据库版本升级时被调用,特别适合做表结构的修改。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
MainActivity.java
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建帮助类对象
MyOpenHelpter myOpenHelpter=new MyOpenHelpter(this);
myOpenHelpter.getReadableDatabase();
}
}
getReadableDatabase: 先去获取一个可读可写的数据库对象,如果磁盘空间满了,无法进行写操作,就会以只读的方式打开数据库。
getWritableDatabase: 直接以读写方式打开数据库,如果磁盘空间满,那么就会报错
四:数据库的增删改查方法
4.1:
1.通过创建一个数据帮助类对象可以创建一个数据库(在帮助类的onCreate方法中创建一个info表,有三个字段)
2.通过帮助类对象获取一个数据库操作对象SQlitDatabase(在主类中)
3.通过SqliteDatabase的一个excuteSql()方法可以执行Sql语句,但是这种方式容易写错,没有返回值,我们不知道执行成功没.
五、使用事务操作SQLite数据库
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。
银行转账 执行一件事,要么全部成功,要么全部失败
//开启事务
db.beginTransaction();
try {
db.execSQL("update account set money= money-200 where name=?",new String[]{"李四"});
int a = 1/0;//如果执行过程中发现异常 事务会进行回滚
db.execSQL("update account set money= money+200 where name=?",new String[]{"张三"});
//设置事务成功标记
db.setTransactionSuccessful();
} finally {
//事务结束
db.endTransaction();
}
Android_SQLite数据库增删改查操作的更多相关文章
- (转)SQLite数据库增删改查操作
原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...
- Android SQLite 数据库 增删改查操作
Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...
- jmeter-Java-MongoDB 数据库增删改查操作
在日常测试过程中会发现有些测试数据是通过数据库来获取的,一般常用的数据比如SQL .Oracle,此类数据库jmeter有专门的插件进行使用JDBC,今天跟大家说一说关于Mongodb这个数据库jme ...
- SQLite数据库增删改查操作
一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字).TEXT(字符串 ...
- Android SQLite数据库增删改查操作
一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符 ...
- IOS使用FMDB封装的数据库增删改查操作
// // DBHelper.h // LessonStoryBoard // // Created by 袁冬冬 on 15/10/29. // Copyright (c) 2015年 袁冬 ...
- java连接mysql数据库增删改查操作记录
1. 连接数据库.得到数据库连接变量 注意连接数据库的时候 (1)打开DB Browser 新建一个Database Driver,注意加入Driver JARs的时候加入的包,我的是mysql-co ...
- SpringBoot结合Mybatis 使用 mapper*.xml 进行数据库增删改查操作
什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索. MyBa ...
- 数据库-增删改查操作SQL实现
一.数据插入-Insert 1. 插入单条记录 insert into 表名(字段名,字段名,字段名) //当插入所有字段时,字段名可以省略 values('值1','值2','值3'); 2. 插入 ...
随机推荐
- 用 javassist 来修改 class 文件
import javassist.ClassPool; import javassist.CtClass; import javassist.CtMethod; public class Test { ...
- tp框架之session
系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成,该函数可以完成Session的设置.获取.删除和管理操作. session初始化设置 如果session ...
- JS 模块化和打包方案收集
1.这里想讨论的是拆分规则,不是在问哪个工具怎么使用.2.这里没有在想找正确答案,因为感觉这个问题要结合具体业务场景. 随着项目开发越来越大,一开始代码全打包到一个文件的方式,让文件越来越大,接下来要 ...
- Delphi容器类之---Tlist,TStringlist,THashedStringlist的效率比较
转载自:http://www.ylzx8.cn/windows/delphi/73200.html 本人在做一个测试,服务器是IOCP的,我假定最大链接数是50000个. 测试背景:如果每个链接之间的 ...
- PDA手持机 移动开单进销存系统 现场出打印凭据和扫码 新的亮点
传统车销模式弊端:1.手写开单,效率低,动作慢2.现场手写开单明细不能打印,产品明细不规范3.电脑办公人员及车销人员对车上的库存情况掌握不清楚,销售人员对每种产品销售价格不清楚4.老板对员工工作的管控 ...
- Linux 用户添加sudo 权限
编辑/etc/sudoers 搜索root 添加 账号 ALL=(ALL) ALL
- java-并发-同步
浏览以下内容前,请点击并阅读 声明 线程间的通信主要是通过访问以及对象引用字段,这种形式的通信非常高效,但是会产生两种可能的错误:线程干扰和内存一致性错误,反正这些错误的工具就是同步. 然而,同步可能 ...
- MVC Html.BeginForm 与 Ajax.BeginForm 使用总结
最近采用一边工作一边学习的方式使用MVC5+EF6做一个Demo项目, 期间遇到不少问题, 一直处于研究状态, 没能来得及记录. 今天项目进度告一段落, 得以有空记录学习中遇到的一些问题. 由于MVC ...
- 【BZOJ1662】[Usaco2006 Nov]Round Numbers 圆环数 数位DP
[BZOJ1662][Usaco2006 Nov]Round Numbers 圆环数 Description 正如你所知,奶牛们没有手指以至于不能玩"石头剪刀布"来任意地决定例如谁 ...
- Cordova 3.x入门 - 目录
这个系列是基于Cordova 3.x的,很多Android的东西都是Eclipse ADT+Ant的,而目前Android的开发已经完全切换到了Android Studio+Gradle,需要大家特别 ...