Android数据存储——SQLite数据库(模板)

本篇整合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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python切分文本(将文本文档切分为词列表)

对于一个句子&#xff0c;一种简单的方法是使用split() a This is an apple. Do you like apple? b a.split() print(b) # [This, is, an, apple., Do, you, like, apple?] 可以看到切分结果不错&#xff0c;但标点符号也当成了词的一部分&#xff0c;可以使用正则表达式…

吴恩达《机器学习》学习笔记八——逻辑回归(多分类)代码

吴恩达《机器学习》笔记八——逻辑回归&#xff08;多分类&#xff09;代码导入模块及加载数据sigmoid函数与假设函数代价函数梯度下降一对多分类预测验证课程链接&#xff1a;https://www.bilibili.com/video/BV164411b7dx?fromsearch&seid5329376196520099118 之前笔记…

DeepMind 综述深度强化学习:智能体和人类相似度竟然如此高!

来源&#xff1a;AI科技评论近年来&#xff0c;深度强化学习&#xff08;Deep reinforcement learning&#xff09;方法在人工智能方面取得了瞩目的成就&#xff0c;从 Atari 游戏、到围棋、再到无限制扑克等领域&#xff0c;AI 的表现都大大超越了专业选手&#xff0c;这一进展…

Python随机选择一部分训练样本作为测试样本

假设训练样本有30个&#xff0c;从训练样本中随机获得10个作为测试样本&#xff0c;剩下20个继续作为训练样本 import numpy as nptrainingSet list(range(30)) # 训练样本下标 testSet [] for i in range(10):randIndex int(np.random.uniform(0, len(training…

吴恩达《机器学习》学习笔记十——神经网络相关(2)

吴恩达《机器学习》学习笔记十——神经网络相关&#xff08;2&#xff09;一、 代价函数二、 反向传播算法三、 理解反向传播算法四、 梯度检测五、 随机初始化1.全部初始化为0的问题2.随机初始化的思想六、 神经网络算法整体流程1.选择网络具体架构2.训练神经网络课程链接&…

Ajax跨域请求解决方案——jsonp

转自&#xff1a;http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html 1、一个众所周知的问题&#xff0c;Ajax直接请求普通文件存在跨域无权限访问的问题&#xff0c;甭管你是静态页面、动态网页、web服务、WCF&#xff0c;只要是跨域请求&#xff0…

MATLAB的Kmeans函数实现聚类

转自https://blog.csdn.net/a493823882/article/details/79282425 使用方法&#xff1a; Idxkmeans(X,K) [Idx,C]kmeans(X,K) [Idx,C,sumD]kmeans(X,K) [Idx,C,sumD,D]kmeans(X,K) […]Kmeans(…,’Param1’,Val1,’Param2’,Val2,…)各输入…

吴恩达《机器学习》学习笔记十一——神经网络代码

吴恩达《机器学习》学习笔记十一——神经网络代码数据准备神经网络结构与代价函数初始化设置反向传播算法训练网络与验证课程链接&#xff1a;https://www.bilibili.com/video/BV164411b7dx?fromsearch&seid5329376196520099118 数据集链接&#xff1a;https://pan.baidu…

中国科研人员发明单晶体管逻辑结构新原理

▲随着晶体管不断缩小特征尺寸&#xff0c;集成电路的性能得以持续提升。然而在超小器件尺寸下&#xff0c;硅材料的物理极限导致了功耗的大幅提升&#xff0c;难以进一步持续减小晶体管的特征尺寸。来源&#xff1a;文汇网通过引入层状半导体&#xff0c;并依据其特性设计新型…

Java 内存模型

1、并发模型编程的分类 在并发模型编程中&#xff0c;我们需要解决两个关键问题&#xff1a;线程之间如何通信以及线程之间如何同步。线程之间的通信包括两种&#xff1a;共享内存和消息传递。 Java并发采用的是共享内存模型。 2、Java内存模型的抽象 Java内存模型的主要目标是…

神经网络中Batch和Epoch之间的区别

来自蜂口知道公众号 随机梯度下降法是一种具有大量超参数的学习算法。通常会使初学者感到困惑的两个超参数: Batch大小和Epoch数量,它们都是整数值&#xff0c;看起来做的事情是一样的。在这篇文章中&#xff0c;您将发现随机梯度下降中Batch和Epoch之间的差异。 阅读这篇文章…

PyTorch框架学习一——PyTorch的安装(CPU版本)

PyTorch框架学习一——PyTorch的安装&#xff08;CPU版本&#xff09;PyTorch简介PyTorch的安装&#xff08;CPU版&#xff09;机器学习/深度学习领域的学习都是需要理论和实践相结合的&#xff0c;而它们的实践都需要借助于一个框架来实现&#xff0c;PyTorch在学术界目前处于…

你的大脑在自动驾驶,而你一无所知

来源&#xff1a;果壳想象一下&#xff0c;你的大脑里有着两个小人&#xff0c;它们在不停地打架&#xff0c;试图夺取控制你行动的权力。当然&#xff0c;这两个小人并不是你善意和邪恶的念头。那它们是什么&#xff1f;在很多人看来&#xff0c;这两者就是我们的意识和无意识…

常用的损失函数

来自 机器学习成长之路公众号 本文将常用的损失函数分为了两大类&#xff1a;分类和回归。然后又分别对这两类进行了细分和讲解&#xff0c;其中回归中包含了一种不太常见的损失函数&#xff1a;平均偏差误差&#xff0c;可以用来确定模型中存在正偏差还是负偏差。 从学习任务…

吴恩达《机器学习》学习笔记十一——应用机器学习的建议

吴恩达《机器学习》学习笔记十一——应用机器学习的建议一、训练完模型后下一步要做什么二、评估算法与模型选择1.训练集与测试集2.训练/测试步骤3.模型选择4.数据集新的划分——验证集的加入三、偏差与方差1.偏差与方差的理解2.正则化和偏差方差的关系3.学习曲线四、决定接下来…

为什么说深耕AI领域绕不开知识图谱?

来源&#xff1a;AI科技大本营“所有在 AI 领域深耕的人&#xff0c;最终都会发现语义鸿沟仍是一个非常具有挑战性的问题&#xff0c;这最终还需要借助知识图谱等技术&#xff0c;来帮助将整体的 AI 认知取得新进展。”在 5 月 26 日的 CTA 峰会机器学习专场&#xff0c;Hulu 首…

Ruby 变量

Ruby 之初体验。接着学习&#xff0c;昨天竟然病了&#xff0c;懈怠了。要坚持锻炼丫&#xff0c;就和坚持写博客似的。 来&#xff0c;下面接着唠。 来侃侃变量&#xff0c;百度上说是能储存计算结果或能表示值抽象概念。顾名思义就是可变化的值。 Ruby 支持五种类型的变量。 …

机器学习中的相似性度量总结

来自 机器学习算法那些事公众号 在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement)&#xff0c;这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究&#xff0c;甚至关系到分类的正确与否。 目录 1. 欧氏距离 …

吴恩达《机器学习》学习笔记十二——机器学习系统

吴恩达《机器学习》学习笔记十二——机器学习系统一、设计机器学习系统的思想1.快速实现绘制学习曲线——寻找重点优化的方向2.误差分析3.数值估计二、偏斜类问题&#xff08;类别不均衡&#xff09;三、查准率P与召回率R——代替准确率的评估指标四、查准率与召回率的权衡——…

增强现实:一场正在到来的医疗革命

来源&#xff1a; 资本实验室图像化可以让医生的诊断、决策和治疗更加准确&#xff0c;可以说是医疗史上非常重要的一项技术突破。近几年&#xff0c;通讯技术的发展推动了空间计算的快速商业化。在医疗领域&#xff0c;增强现实&#xff08;AR&#xff09;、虚拟现实&#xff…