/**
* @Project: SQLiteDemo
* @Title: ConfigDBHelp.java
* @Package com.lilin.sqlite.db
* @Description: do config table
* @author lilin andlil@163.com
* @date 2012-3-22 下午09:18:56
* @Copyright: . All rights reserved.
* @version V1.0
*/
package com.lilin.sqlite.db;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.lilin.sqlite.R;
import com.lilin.sqlite.model.Config;
import com.lilin.util.LogHelp;
//表名:config
public class ConfigDBHelp {
private static final String TABLENAME = "config";
// 参数2 空列的默认值
// 参数3 ContentValues类型的一个封装了列名称和列值的Map;
public static void insert(Context con, String key, String value) {
DBOpenHelp dbhelper = new DBOpenHelp(con, con
.getString(R.string.db_name));
SQLiteDatabase db = dbhelper.getWritableDatabase();
ContentValues cValue = new ContentValues();// 实例化常量值
cValue.put("key", key);// 添加用户名
cValue.put("value", value);
db.insert(TABLENAME, null, cValue); // 调用insert()方法插入数据
DBHelp.close(dbhelper, db, null);
}
// 通过SQL语句插入
public static void insertSQL(Context con, String key, String value) {
DBOpenHelp dbhelper = new DBOpenHelp(con, con
.getString(R.string.db_name));
SQLiteDatabase db = dbhelper.getWritableDatabase();
try {
String delSQL = "delete from config where key = '" + key + "'";
db.execSQL(delSQL);
} catch (Exception e) {
e.printStackTrace();
LogHelp.Log2SDErr(e, con.getString(R.string.logpath), con
.getString(R.string.app_name));
}
// 方法一:
String str[] = new String[] { key, value };
db.execSQL("insert into config values(?,?)", str);
// 方法二:
// String insertSQL = "insert into config(key,value) values('" + key
// + "','" + value + "')";
// db.execSQL(insertSQL);
DBHelp.close(dbhelper, db, null);
}
// update(String table,ContentValues values,String whereClause, String[])
// whereArgs)
// 参数1 表名称
// 参数2 跟行列ContentValues类型的键值对Key-Value
// 参数3 更新条件(where字句)
// 参数4 更新条件数组
public static void update(Context con, String value, String key) {
DBOpenHelp dbhelper = new DBOpenHelp(con, con
.getString(R.string.db_name));
SQLiteDatabase db = dbhelper.getReadableDatabase();
ContentValues values = new ContentValues();
values.put("value", value);// 参数2 跟行列ContentValues类型的键值对Key-Value
String whereClause = "key=?";
String[] whereArgs = { key };
db.update("usertable", values, whereClause, whereArgs);
DBHelp.close(dbhelper, db, null);
}
public static void updateSQL(Context con, String value, String key) {
DBOpenHelp dbhelper = new DBOpenHelp(con, con
.getString(R.string.db_name));
SQLiteDatabase db = dbhelper.getReadableDatabase();
String updateSQL = "update config set value='" + value
+ "' where key='" + key + "'";
db.execSQL(updateSQL);
DBHelp.close(dbhelper, db, null);
}
// delete(String table,String whereClause,String[] whereArgs)
// 参数1 表名称
// 参数2 删除条件
// 参数3 删除条件值数组
public static void delete(Context con, String key) {
DBOpenHelp dbhelper = new DBOpenHelp(con, con
.getString(R.string.db_name));
SQLiteDatabase db = dbhelper.getReadableDatabase();
String whereClause = "key=?";// 删除条件
String[] whereArgs = { key }; // 删除条件参数
db.delete(TABLENAME, whereClause, whereArgs);// 执行删除
DBHelp.close(dbhelper, db, null);
}
public static void deleteSQL(Context con, String key) {
DBOpenHelp dbhelper = new DBOpenHelp(con, con
.getString(R.string.db_name));
SQLiteDatabase db = dbhelper.getReadableDatabase();
String delSQL = "delete from config where key = '" + key + "'";
db.execSQL(delSQL);
DBHelp.close(dbhelper, db, null);
}
// 根据key获得对应的Value
public static String getValueByKey(Context con, String key) {
DBOpenHelp dbhelper = new DBOpenHelp(con, con
.getString(R.string.db_name));
SQLiteDatabase db = dbhelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select value from config where key='"
+ key + "'", null);
String value = "";
while (cursor.moveToNext()) {
value = cursor.getString(0);
}
DBHelp.close(dbhelper, db, null);
return value;
}
// 在Android中查询数据是通过Cursor类来实现的,当我们使用SQLiteDatabase.query()方法时,会得到一个Cursor对象,Cursor指向的就是每一条数据。它提供了很多有关查询的方法,具体方法如下:
// public Cursor query(String table,String[] columns,String
// selection,String[] selectionArgs,String groupBy,String having,String
// orderBy,String limit);
// 各个参数的意义说明:
// 参数table:表名称
// 参数columns:列名称数组
// 参数selection:条件字句,相当于where
// 参数selectionArgs:条件字句,参数数组
// 参数groupBy:分组列
// 参数having:分组条件
// 参数orderBy:排序列
// 参数limit:分页查询限制
// 参数Cursor:返回值,相当于结果集ResultSet
// Cursor是一个游标接口,提供了遍历查询结果的方法,如移动指针方法move(),获得列值方法getString()等.
// Cursor游标常用方法
// getCount() // 获得总的数据项数
// isFirst() // 判断是否第一条记录
// isLast() // 判断是否最后一条记录
// moveToFirst() // 移动到第一条记录
// moveToLast() // 移动到最后一条记录
// move(int offset) // 移动到指定记录
// moveToNext()// 移动到下一条记录
// moveToPrevious() // 移动到上一条记录
// getColumnIndexOrThrow(String columnName) // 根据列名称获得列索引
// getInt(int columnIndex) // 获得指定列索引的int类型值
// getString(int columnIndex)// 获得指定列缩影的String类型值
public static List<Config> query(Context con) {
DBOpenHelp dbhelper = new DBOpenHelp(con, con
.getString(R.string.db_name));
SQLiteDatabase db = dbhelper.getReadableDatabase();
String columns[] = null;// 参数columns:列名称数组
String selection = "";// 参数selection:条件字句:"ROWGUID=?"
String selectionArgs[] = null;// 参数selectionArgs:条件字句,参数数组
String groupBy = null;// 参数groupBy:分组列
String having = null;// 参数having:分组条件
String orderBy = null;// 参数orderBy:排序列
// 参数limit:分页查询限制
Cursor cursor = db.query(TABLENAME, columns, selection, selectionArgs,
groupBy, having, orderBy);// 查询获得游标
List<Config> list = new ArrayList<Config>();
if (cursor.moveToFirst()) {// 判断游标是否为空
// 遍历游标
for (int i = 0; i < cursor.getCount(); i++) {
cursor.move(i);
Config mdate = new Config();
mdate.setKey(cursor.getString(0).toString());
mdate.setValue(cursor.getString(1).toString());
list.add(mdate);
}
}
DBHelp.close(dbhelper, db, cursor);
return list;
}
}
分享到:
相关推荐
Ubuntu命令技巧手册》是专为Ubuntu用户设计的一份实用指南,它涵盖了广泛的操作系统管理、文件处理、网络通信及系统维护等方面的命令行操作技巧。Ubuntu是一个基于Debian的开源Linux发行版,以其用户友好性和强大的命令行工具而受到全球开发者和用户的喜爱。通过熟练掌握这些命令技巧,用户可以更高效地在Ubuntu环境中工作。 手册首先会介绍Ubuntu的基本概念,包括终端的使用和命令行的基本语法。在Linux系统中,终端是执行各种系统级任务的核心工具,用户可以通过键盘输入命令来执行操作,而无需图形化界面。掌握如何打开终端(如通过快捷键Ctrl+Alt+T)以及基本的命令行导航(如cd、ls、pwd)是使用Ubuntu的第一步。 文件和目录管理是Ubuntu命令行中的重要部分。例如,`mkdir`用于创建新目录,`touch`用于创建新文件,`cp`和`mv`分别用于复制和移动文件或目录,而`rm`则用于删除。了解这些命令的选项,如递归操作(-r)和强制删除(-f),能帮助用户更灵活地管理文件系统。
Stylus是一款能改变网站样式的样式管理器(谷歌浏览器插件)
springboot项目基于Spring与Vue的疫情居家检测管理系统的设计与实现代码,含有完整的源码和报告文档
文本框说明文字循环PPT模板
图表分类ppt
Linear Algebra and Its Applications - 5th Edition - David C. Lay《线性代数及其应用》 能复制。英文版本。
MATLAB环境下一种自适应Chirp模态分解方法。 算法运行环境为Matlab r2018a,可用于一维时间序列分解,时频分析,故障诊断,特征提取等。 算法可迁移至金融时间序列,地震 微震信号,机械振动信号,声发射信号,电压 电流信号,语音信号,声信号,生理信号(ECG,EEG,EMG)等一维时间序列信号。 压缩包=程序+数据+参考。
信捷PLC程序 信捷XDM系列PLC程序,信捷触摸屏程序 双轴圆弧插补三轴画圆程序
项目资源包含:可运行源码+sql文件+文档 源码都是精心调试,有文档,可以部署,有费用,谢谢支持。 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 项目具有较高的学习借鉴价值,也可拿来修改、二次开发。 有任何使用上的问题,欢迎随时与博主沟通,博主看到后会第一时间及时解答。 开发语言:Java 框架:SpringBoot 技术:Vue JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 系统是一个很好的项目,结合了后端服务(SpringBoot)和前端用户界面(Vue.js)技术,实现了前后端分离。
资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立
基于单目视觉原理,研究目标图像的预处理、识别、定位方法与测距模型,设计实现一个目标识别与定位测距原型系统。_MonocularVisionRanging
基于留出法、k折交叉验证和留一法的多种机器学习模型对比(用于分类)MATLAB程序:代码中共包含决策树(DT)、判别分析(DA)、集成树(ET)、高斯混合模型(GMM)、k近邻(KNN)、多分类支持向量机(MSVM)、支持向量机(SVM)、随机森林(RF)八种机器学习模型,可以任意选择,分别用留出法、k折交叉验证和留一法进行分类效果对比。 代码注释清楚。 main为主程序,读取EXCEL数据。 很方便,容易上手。 温馨提示:联系请考虑是否需要,程序代码,一经出,概不 。
SPOTIFY - Culture Next Report_CAIG
项目资源包含:可运行源码+sql文件+ 源码都是精心调试,,可以部署,有费用,谢谢支持。 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 项目具有较高的学习借鉴价值,也可拿来修改、二次开发。 有任何使用上的问题,欢迎随时与博主沟通,博主看到后会第一时间及时解答。 开发语言:Java 框架:SpringBoot 技术:Vue JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 系统是一个很好的项目,结合了后端服务(SpringBoot)和前端用户界面(Vue.js)技术,实现了前后端分离。
springboot项目基于Web的课程设计选题管理系统,含有完整的源码和报告文档
ThinkPHP是一个高性能且功能完备的轻量级PHP开发框架,具备众多原创特性,并秉持“大道至简”的开发理念,致力于以最少的代码实现更多功能,旨在简化并加速WEB应用的开发流程。自1.*版本起,该框架便不再兼容PHP4,从而使其架构与实现更为灵活与简洁。2.0版本在前序版本的基础上,经过全面重构与持续优化,达到了新的高度,满足企业级与门户级开发的标准。 以下是ThinkPHP相关文档的列表: - ThinkPHP 2.0 Q&A.chm - ThinkPHP-2.0-API.chm - ThinkPHP2.0完全开发手册.chm - ThinkPHP2.0开发技巧.chm - ThinkPHP2.1 RBAC使用和示例操作.chm - ThinkPHP2.1 完全开发手册.chm - ThinkPHP2.1 常见问题&开发技巧.chm - ThinkPHP2.1 自定义标签示例说明.chm
无人机VESC7500,低压伺服keil源码,可以无感,霍尔单馈,正余弦,ABZ等多种反馈信号,是用非线性磁链观测器,高频注入等多种算法于一身,上位机源码,原理图。 没有PCB 最大电流300A,是学习不错的资料。
基于51单片机的测速码表仿真 包含以下资料: - keil程序源码带注释 - protus仿真文件 - AD版本原理图 - AD版本PCB - 所用软件安装包
===如资源质量问题,可半价退款,代下全网资源,价格公道==== 在通信系统的研究与设计中,信道建模是至关重要的一步。瑞利信道作为无线通信中最常见的信道模型之一,模拟了多径衰落的环境,尤其适用于城市微波通信和室内环境。本篇文章将深入探讨“matlab瑞利信道仿真程序”的相关知识点,包括瑞利信道的基本概念、2-径模型、指数路径损耗模型以及如何使用MATLAB进行仿真。 瑞利信道是基于多径传播的统计模型,其中信号经过多个反射和折射路径到达接收端,导致信号强度呈现随机波动。这种信道模型的特点是具有平坦频率衰落,即所有频率成分的衰落是同步的。在瑞利信道中,信号通常由多个独立的路径组成,每个路径都有不同的延迟和衰减,形成所谓的多径分量。 在给定的描述中,`plot_2ray_exp_model.m` 文件似乎使用了一个2-径模型来模拟瑞利信道。2-径模型是最简单的瑞利信道模型,假设信号经过两个主要路径到达接收器。这两个路径通常代表直射路径和一个反射路径,它们之间的相位差是随机的,导致接收信号的幅度随机变化。 指数路径损耗模型(即exp_PDP)是信道模型的一部分。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
质心侧偏角相平面simulink程序