本篇整合Android使用数据库,要保存一个实体类的样本。

首先看一下数据库语句:

ORM:关系对象映射

添加数据:

 ContentValues values = new ContentValues();values.put("name", "小丽");values.put("phone", "110");mDB.insert("student",//表名null, //规避插入语句的错误values );//插入的值 

删除数据:

mDB.delete("student", //表名"name =?",//条件语句new String[]{"小丽"});//条件语句的占位符

改动数据:

 ContentValues values = new ContentValues();values.put("phone", "10086");mDB.update("student",//表名values, //要改动的值"name =?",//条件语句new String[]{"小丽"});

查询数据:

 Cursor cursor = mDB.query("student",//表名null,//查询的字段null,//条件语句null,//条件语句的占位符null,//分组语句null,//分组条件null);//排序boolean toFirst = cursor.moveToFirst();while(toFirst){String name = cursor.getString(cursor.getColumnIndex("name"));String phone = cursor.getString(cursor.getColumnIndex("phone"));MyData myData = new MyData(name, phone);dataList.add(myData);toFirst = cursor.moveToNext();}       

以下是数据库创建及使用步骤

1、方法调用

private DBMang_Order dbMang_Order; dbMang_Order=DBMang_Order.getInstance(getApplicationContext());//查询
ArrayList<OrderUncheck> uncheckList = dbMang_Order.query();
//删除
dbMang_Order.delete(orderNo);
//添加
dbMang_Order.insert(new OrderUncheck(orderNo, account, action));
//改动
dbMang_Order.update(new OrderUncheck(orderNo, account, action));

2、首先创建要存储的实体类

public class OrderUncheck {String orderNo;double account;int action;public String getOrderNo() {return orderNo;}public void setOrderNo(String orderNo) {this.orderNo = orderNo;}public double getAccount() {return account;}public void setAccount(double account) {this.account = account;}public int getAction() {return action;}public void setAction(int action) {this.action = action;}public OrderUncheck(String orderNo, double account, int action) {super();this.orderNo = orderNo;this.account = account;this.action = action;}
}

3、创建数据库

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;public class MySQL_Order extends SQLiteOpenHelper {private static final String name = "count"; //数据库名称    private static final int version = 1; //数据库版本号  //第三个參数CursorFactory指定在运行查询时获得一个游标实例的工厂类,设置为null,代表使用系统默认的工厂类  public MySQL_Order(Context context) {super(context, name, null, version);}@Overridepublic void onCreate(SQLiteDatabase db) {String sql="CREATE TABLE neworder (_id INTEGER PRIMARY KEY AUTOINCREMENT,orderNo VARCHAR(200),account VARCHAR(19100),action VARCHAR(200))";             db.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}
}

4、代码中被调用的方法在这个类:增删改查

public class DBMang_Order {private static DBMang_Order mDbManager=new DBMang_Order();private static SQLiteDatabase mDb;private static Context context;private  DBMang_Order() {}public static synchronized DBMang_Order getInstance(Context context){DBMang_Order.context = context;if(mDb==null){MySQL_Order mySQL = new MySQL_Order(context);mDb = mySQL.getWritableDatabase();}return mDbManager;}   interface NewTable{String TABLE_NAME="neworder";String TABLE_COLUMN_orderNo="orderNo";String TABLE_COLUMN_account="account";String TABLE_COLUMN_action="action";}//增public void insert(OrderUncheck info){      ContentValues values=new ContentValues();values.put(NewTable.TABLE_COLUMN_orderNo, info.getOrderNo());values.put(NewTable.TABLE_COLUMN_account, info.getAccount());values.put(NewTable.TABLE_COLUMN_action, info.getAction());Log.w("mDb.insert", ""+info);Log.w("mDb.insert",""+ values);mDb.insert(NewTable.TABLE_NAME, null, values);      }       //删public void delete(String orderNo) {Log.w("delete", orderNo);mDb.delete(NewTable.TABLE_NAME, NewTable.TABLE_COLUMN_orderNo+"=?", new String[]{orderNo});}//改public void update(OrderUncheck info){ContentValues values = new ContentValues();values.put(NewTable.TABLE_COLUMN_account, info.getAccount());mDb.update(NewTable.TABLE_NAME, values, NewTable.TABLE_COLUMN_orderNo+"=? and "+NewTable.TABLE_COLUMN_orderNo+"=?

"

, new String[]{String.valueOf(info.getOrderNo()),""+info.getAccount()}); } //查 public ArrayList<OrderUncheck> query(){ Cursor cursor = mDb.query(NewTable.TABLE_NAME, null, null, null, null, null, null); ArrayList<OrderUncheck> list=new ArrayList<OrderUncheck>(); boolean toFirst = cursor.moveToFirst(); while (toFirst) { String orderNo = cursor.getString(cursor.getColumnIndex(NewTable.TABLE_COLUMN_orderNo)); String account = cursor.getString(cursor.getColumnIndex(NewTable.TABLE_COLUMN_account)); String action = cursor.getString(cursor.getColumnIndex(NewTable.TABLE_COLUMN_account)); double accountd = Double.parseDouble(account); int actiond=Integer.parseInt(action); OrderUncheck order = new OrderUncheck(orderNo, accountd,actiond); list.add(order); toFirst=cursor.moveToNext(); } cursor.close(); return list; } }

很多其它交流可加Android技术讨论群:71262831

版权声明:本文博主原创文章,博客,未经同意不得转载。

转载于:https://www.cnblogs.com/blfshiye/p/4856702.html

Android数据存储——SQLite数据库(模板)相关推荐

  1. [Android Studio]Android 数据存储--SQLite数据库存储

  2. Android App开发基础篇—数据存储(SQLite数据库)

    Android App开发基础篇-数据存储(SQLite数据库) 前言:Android中提供了对SQLite数据库的支持.开发人员可以在应用中创建和操作自己的数据库来存储数据,并对数据进行操作. 一. ...

  3. 【073】Android 数据存储(SQLite)

    目录: I. 使用 SharedPreferences 来存储应用程序的数据 II. 将应用程序的数据存储到内部存储器中 III. 将应用程序的数据存储到外部存储器中 IV. 通过 SQLite 数据 ...

  4. Android数据存储:数据库基础,在Android应用中使用数据库,附加Menu菜单选项的一些说明

    为什么**持久性数据很重要: 在计分器那个应用中,是将球队得分存储在变量里,当我们旋转应用时Activity被销毁,得分记录也没有了.将设备旋转为新的方向时,Activity被重现创建,得分又变成默认 ...

  5. android模拟器的数据存放,Android模拟器在哪里存储SQLite数据库?

    Android模拟器在哪里存储SQLite数据库? 我正在开发一个将数据存储在SQLite数据库中的Android应用程序. 我的问题是,当您使用模拟器时,此数据库文件存储在文件系统中的哪个位置? 我 ...

  6. Android 数据存储之SQLite数据库

    转载请标明出处: http://blog.csdn.net/airsaid/article/details/52419418 本文出自:周游的博客 前言 SQLiteDatabase 创建数据库和表 ...

  7. Android数据存储(三)----- SQLite数据库存储

    SQLite是Android系统内置的数据库,是一种轻量级的关系型数据库,它运算速度快,占用资源少,非常适合在移动设备上使用.同时,它不仅支持标准的SQL语法,还遵循了数据库的ACID事务. 一.创建 ...

  8. Android版本升级同时Sqlite数据库的升级及之前数据的保留-转

    http://www.cnblogs.com/wang340/archive/2013/05/06/3063135.html http://www.eoeandroid.com/forum.php?m ...

  9. Android官方开发文档Training系列课程中文版:数据存储之数据库存储

    原文地址:http://android.xsoftlab.net/training/basics/data-storage/databases.html 对于保存重复的结构化的数据最理想的方式就是存到 ...

最新文章

  1. 2020第11届蓝桥杯省赛Python题目
  2. 【解析】工业机器人中的各类传感器技术应用
  3. selenium操作浏览器cookie方法
  4. 关机相关(shutdown,reboot)
  5. 使用代码获得table whered use list
  6. C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
  7. Linux下启动tomcat报java.lang.OutOfMemoryError: PermGen space
  8. JAVA运算符和优先级
  9. 远程控制python
  10. 优秀的设计UI界面按钮素材,让点击率飙升
  11. CentOs6.6安装Python3
  12. html常用的符号实体
  13. request中的技巧
  14. java final域_【Java】final 域的内存语义
  15. Android触控签名软件,Android Sign Kit(app一键签名)
  16. 【简历】Android简历该这样写
  17. KeilC51使用详解 (三)
  18. 计算机怎么设置内存数据恢复,相机内存卡数据恢复的操作图解
  19. 海康威视API-单帧数据捕获并保存成JPEG图片NET_DVR_CaptureJPEGPicture
  20. 看携程如何借助“预测式外呼”提高呼叫效率

热门文章

  1. 五、Web服务器——MVC开发模式 EL表达式 JSTL 学习笔记
  2. 使用pymysql进行数据库的增删改查
  3. LeetCode 1955. 统计特殊子序列的数目
  4. LeetCode 508. 出现次数最多的子树元素和(递归)
  5. 程序员面试金典 - 面试题 17.06. 2出现的次数(找递推规律)
  6. LeetCode 72. 编辑距离(DP)
  7. LeetCode 650. 只有两个键的键盘(DP)
  8. 编辑器eslint格式_vscode保存代码,自动按照eslint规范格式化代码设置
  9. 脸书令牌怎么使用_网工知识角|QOS技术令牌桶算法一分钟速记,考试无忧
  10. jlist放jbutton 按钮事件失效_电动高处作业吊篮操作如何面对一些突发事件