sqlite数据库操作详细介绍 增删改查,游标
本文来源于www.ifyao.com禁止转载!www.ifyao.com
- package com.example.engine;
- import android.content.Context;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteDatabase.CursorFactory;
- import android.database.sqlite.SQLiteOpenHelper;
- public class DBOpenHelper extends SQLiteOpenHelper {
- private final static String DB_NAME = "NFCAssistant.db";// 数据库名称
- private final static int DB_VERSION = 2;// 版本
- private final static String DB_USER_TABLE = "tbl_users";// 用户表
- private final static String DB_BatchEpment_TABLE = "tbl_batch";// 批量信息
- private final static String DB_LargeEpment_TABLE = "tbl_large";// 大型设备
- private final static String DB_LOG_TABLE = "tbl_log";// 日志
- public DBOpenHelper(Context context) {
- super(context, DB_NAME, null, DB_VERSION);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- // TODO Auto-generated method stub
- // 用户表 角色1管理员2超级管理员
- String createTable = "CREATE TABLE " + DB_USER_TABLE + " ("
- + "Id integer PRIMARY KEY AUTOINCREMENT UNIQUE,"
- + "UserName varchar (10) NOT NULL UNIQUE,"
- + "PassWord varchar (49) NOT NULL,"
- + "Role varchar (10) DEFAULT 1" + ");";
- // 批量信息表
- String createTblBatchEpment = "CREATE TABLE " + DB_BatchEpment_TABLE
- + " (" + "Id integer PRIMARY KEY AUTOINCREMENT UNIQUE, "
- + "DeviceId integer NOT NULL UNIQUE,"
- + "Codes varchar (100) NOT NULL,"
- + "DeviceName varchar NOT NULL ," + "Price integer NOT NULL,"
- + "Custodian varchar NOT NULL," + "End_user varchar NOT NULL,"
- + "Time datatime NOT NULL" + ");";
- // 大型设备表
- String createTblLargeEpment = "CREATE TABLE " + DB_LargeEpment_TABLE
- + " (" + "Id integer PRIMARY KEY AUTOINCREMENT UNIQUE, "
- + "DeviceId integer NOT NULL UNIQUE,"
- + "DeviceName varchar NOT NULL ,"
- + "Codes varchar (100) NOT NULL," + "Price integer NOT NULL,"
- + "Custodian varchar NOT NULL," + "End_user varchar NOT NULL,"
- + "Time datatime NOT NULL," + "Location varchar NOT NULL"
- + ");";
- // 日志表
- String createTblLog = "CREATE TABLE " + DB_LOG_TABLE + " ("
- + "Id integer PRIMARY KEY AUTOINCREMENT UNIQUE, "
- + "UserName varchar NOT NULL ," + "DeviceId integer NOT NULL,"
- + "Time datatime NOT NULL" + ");";
- db.execSQL(createTable);
- db.execSQL(createTblBatchEpment);
- db.execSQL(createTblLargeEpment);
- db.execSQL(createTblLog);
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- // TODO Auto-generated method stub
- db.execSQL("DROP TABLE IF EXISTS " + DB_USER_TABLE);
- db.execSQL("DROP TABLE IF EXISTS " + DB_BatchEpment_TABLE);
- db.execSQL("DROP TABLE IF EXISTS " + DB_LargeEpment_TABLE);
- db.execSQL("DROP TABLE IF EXISTS " + DB_LOG_TABLE);
- onCreate(db);
- }
- }
数据库操作帮助类
DBhelper继承sqliteDBhelper
实现父类的两个方法
Oncreate方法当创建数据库的时候执行
更新方法,当数据库版本更新时执行
- package com.example.engine;
- import com.example.bean.BatchEpment;
- import android.content.Context;
- import android.database.sqlite.SQLiteDatabase;
- /**
- * 操作数据库事物
- *
- * @author ming
- *
- */
- public class DBService {
- private DBOpenHelper dbHelper;
- /**
- * 构造器,得到DBopenHelpper的操作实例
- *
- * @param context
- */
- public DBService(Context context) {
- this.dbHelper = new DBOpenHelper(context);
- }
- /**
- * 将Batch批量数据excel数据保存到数据库
- *
- * @param batch
- */
- public void saveExcelBatch(BatchEpment batch) {
- SQLiteDatabase db = dbHelper.getWritableDatabase();
- db.execSQL(
- "insert into tbl_batch (DeviceId,Codes,DeviceName,Price,Custodian,End_user,Time) values(?,?,?,?,?,?,?)",
- new Object[] { batch.getDeviceId(), batch.getCodes(),
- batch.getDeviceName(), batch.getPrice(),
- batch.getCustodian(), batch.getEnd_user(),
- batch.getTime() });
- };
- }
数据库增删改查业务类,
saveExcelBatch方法将数据插入数据库中
- package com.example.test;
- import com.example.bean.BatchEpment;
- import com.example.engine.DBOpenHelper;
- import com.example.engine.DBService;
- import android.test.AndroidTestCase;
- public class ExcelTest extends AndroidTestCase {
- public void get() throws Exception {
- BatchEpment batch = new BatchEpment();
- batch.setDeviceId("111");
- batch.setCodes("ss");
- batch.setDeviceName("计算机");
- batch.setPrice("2000");
- batch.setCustodian("刘欢");
- batch.setEnd_user("罗琼");
- batch.setTime("20111115");
- DBService dbService = new DBService(getContext());
- dbService.saveExcelBatch(batch);
- }
- }
写一个测试类传入数据,调用业务类的方法插入数据
- package com.example.bean;
- /**
- * 批量设备实体类
- *
- * @author ming
- *
- */
- public class BatchEpment {
- String Id;// 自动编号
- String DeviceId;// 设备编号
- String Codes;// 分类号
- String DeviceName;// 设备名称
- String Price;// 价格
- String Custodian;// 保管人
- String End_user;// 使用单位
- String Time;// 时间
- public BatchEpment() {
- };
- public BatchEpment(String id, String deviceId, String codes,
- String deviceName, String price, String custodian, String end_user,
- String time) {
- super();
- Id = id;
- DeviceId = deviceId;
- Codes = codes;
- DeviceName = deviceName;
- Price = price;
- Custodian = custodian;
- End_user = end_user;
- Time = time;
- }
- public String getId() {
- return Id;
- }
- public void setId(String id) {
- this.Id = id;
- }
- public String getDeviceId() {
- return DeviceId;
- }
- public void setDeviceId(String deviceId) {
- this.DeviceId = deviceId;
- }
- public String getCodes() {
- return Codes;
- }
- public void setCodes(String codes) {
- this.Codes = codes;
- }
- public String getDeviceName() {
- return DeviceName;
- }
- public void setDeviceName(String deviceName) {
- this.DeviceName = deviceName;
- }
- public String getPrice() {
- return Price;
- }
- public void setPrice(String price) {
- this.Price = price;
- }
- public String getCustodian() {
- return Custodian;
- }
- public void setCustodian(String custodian) {
- this.Custodian = custodian;
- }
- public String getEnd_user() {
- return End_user;
- }
- public void setEnd_user(String end_user) {
- this.End_user = end_user;
- }
- public String getTime() {
- return Time;
- }
- public void setTime(String time) {
- this.Time = time;
- }
- }
实体类 另外一个实例:values(?,?)?是占位符,后边数组中的是实际的值 db.rawQuery返回的是一个游标对象 cursor.movetofirst将游标移到第一条记录返回值是个Boolean值 得到由表里边的值 cursor.getInt(对应字段的行标,通过表的对用字段); 最后将游标关闭。要是查询的是多条记录的话,就要迭代查询 cursor,moveTOnext 最后将数据存到Arraylist里边 getcount方法是得到记录的行数
android系统提供的四种操作数据的方法:insert(),delete(),updata(),query()详细介绍看下方图片截图。
将前面提供的用SQL写的例子变成系统方法 插入和删除
查询
分页
sqlite数据库操作详细介绍 增删改查,游标的更多相关文章
- Mysql数据库操作复习,增删改查
Mysql数据库 Apache(服务员) php(大厨) mysql(冰柜) Mysql是瑞典的mysqlAB公司开发的一款中小型关系型数据库管理系统. MysqlAB公司在2008年被S ...
- iOS- Swift:使用FMDB进行数据库操作(线程安全:增删改查)
1.前言 GitHub上2000多颗星的FMDB数据库框架想来大家都很熟悉, 今天用Swift对其进行了一个完成的数据存储读流程 写完之后用博客分享之,与大家一起交流, 希望对需要的朋友提供些帮助 ...
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- 利用SQLite在android上实现增删改查
利用SQLite在android上实现增删改查 方法: 一.直接利用database.execSQL()方法输入完整sql语句进行操作 这种方法适用于复杂的sql语句,比如多表查询等等 这里适合于增删 ...
- MySQL数据库之表的增删改查
目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...
- 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理
一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...
- C#操作Excel数据增删改查(转)
C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...
- C#操作Excel数据增删改查示例
Excel数据增删改查我们可以使用c#进行操作,首先创建ExcelDB.xlsx文件,并添加两张工作表,接下按照下面的操作步骤即可 C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文 ...
- SpringBoot操作MongoDB实现增删改查
本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...
随机推荐
- Google Guava的splitter用法
google的guava库是个很不错的工具库,这次来学习其spliiter的用法,它是一个专门用来 分隔字符串的工具类,其中有四种用法,分别来小结 1 基本用法: String str = " ...
- 编写自己的javascript功能库之Ajax(仿jquery方式)
本人学习的是php,所以就用php跟js来演示代码了,主要是锻炼自己写js的能力,练练手而已. 下面这是我编写的操作ajax的代码功能,勉强让我称之为库吧.. js代码实例(tool.ajax.js) ...
- git基础使用小记
一.安装步骤省略二.运行“Git Bash“在打开的窗口中输入:ssh-keygen -t rsa -C "my@gmail.com" 会提示SSH Public Keys存放的位 ...
- 根据反射生成SQL语句
/** * 基础查询语句 * 返回类型的属性字符串Sql * @author: InkYi * 修改时间:2016年5月11日 - 上午10:06:00<br/> * 功能说明:<b ...
- String 和 string 的区别
string是c#中的类,String是.net Framework的类(在c# IDE中不会显示蓝色)c# string映射为.net Framework的String如果用string,编译器会把 ...
- iOS 两种方法实现左右滑动出现侧边菜单栏 slide view
现在很多的APP中都有slide view,左右滑动出现侧边菜单栏的功能,Weico这个应用就有. 网上有很多第三方的类库实现了这种效果,其实自己代码写的话也是很简单的,下面我将介绍两种方法实现s ...
- 瑞柏匡丞谈中国移动app的国际进阶路
当今3.0互联时代,已然形成了一个移动化,互动化,全球化的完整体系.瑞柏匡丞也在常年与国内外客户的交流沟通中有了自己的些许见解. 国内的移动产业的发展已然非常迅速,但也正是因为各类企业的不断崛起,能够 ...
- "V租房"搭建微信租房平台,让租房人发起求租需求并接收合适房源回复,提高租房效率 | 36氪
"V租房"搭建微信租房平台,让租房人发起求租需求并接收合适房源回复,提高租房效率 | 36氪 "V租房"搭建微信租房平台,让租房人发起求租需求并接收合适房源回复 ...
- c语言中break continue goto return和exit的区别 联系(筛选奇数和goto求和)
break 一般你是用于循环和switch语句中,执行break,退出循环,如果是多层循环,那么退出的当前的循环. 如果循环结构中有switch语句,而switch语句中有break 那么不会直接退出 ...
- iphone UIScrollView缩放
allImageScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)]; allImageScrol ...
要是查询的是多条记录的话,就要迭代查询 cursor,moveTOnext 最后将数据存到Arraylist里边 getcount方法是得到记录的行数
分页