/**
* @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;
}
}
分享到:
相关推荐
图表分类ppt
资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立
BDE_Installer_for_RAD_Studio_10.2_Tokyo.7z
箭头指向中心PPT模板素材
永磁同步电机MTPA控制仿真模型和矢量控制仿真模型,模型全部自己搭建,控制策略采用离散模型仿真,仿照真实微控制器的控制,该模型采用固定的电机参数计算出电流参考值,后期会开发出电机磁饱和交叉耦合变参数的仿真模型,图一为idiq电流真实值随负载的变化的控制波形,图二为MTPA和矢量控制的电流幅值的波形对比,该模型真实度极高,电流环转速环带宽可调,响应快慢可以自己设计。
五项说明关联关系PPT素材
图表分类ppt
突出显示强调关系PPT模板素材
springboot项目基于Spring Boot的民宿租赁系统的设计与实现,含有完整的源码和报告文档
MATLAB代码:基于数据驱动的中央空调系统可控潜力评估 关键词:数据驱动 中央空调 需求响应 可控潜力评估 编程语言:matlab平台 内容简介: 代码主要做的是住宅空调负荷的可调度潜力评估,因为住宅空调负荷是一种具有一定灵活性和可控性的需求响应资源,本代码首先评估单一客户的空调可控潜力,进而发展为大规模地区的空调的需求响应潜力以及规模的评估。 采用静态和动态模型参数估计的分段分析方法,深入分析了ACLs的消费行为,并针对不同时间尺度的需求响应问题,以成本效益为目标,优化空调负荷的需求响应行为。 最后以实际的算例数据,验证了所提出方法的准确性和鲁棒性,代码出图效果极好,而且研究的问题比较全面,适合在此基础上稍加修改形成自己的成果
量产汽车VCU控制策略模型及文档+2份 两个vcu模型 第一个模型为量产项目模型,纯电动车VCU控制策略模型,包含纯电动汽车完整控制策略模块,按autosar价格建模,可以进行代码生成,详细见图片。 第二个模型:包含相关模型设计说明文档
偏移容忍度谐振补偿网络方设计方法研究 simulink仿真实现。 磁耦合谐振式无线电能传输中,相控电容式补偿方法研究 simulink仿真实现
这个饮料销售数据集是研究饮料行业的宝贵资源,它模拟了真实的销售场景,涵盖了众多关键信息。数据集包含10个主要字段,分别是订单ID、客户ID、客户类型(B2B或B2C)、产品名称、产品类别、单价、购买数量、产品折扣、折扣后的总价、客户所在地区以及订单日期。这些字段共同构成了一个全面的销售数据框架,为多维度的分析提供了可能。 从客户类型来看,B2C客户占比64%,而B2B客户占36%,且B2B客户通常能获得折扣,这一特点为分析不同客户群体的销售策略和利润贡献提供了重要依据。 在价格方面,单价和总价的分布范围相当广泛,单价从0.32到超过100不等,总价的分布也呈现出类似的广泛性,这为探究价格与销售量之间的复杂关系、定价策略的有效性等关键问题提供了丰富的数据样本。 总体而言,这个数据集为饮料行业的市场分析、销售策略制定、客户细分研究、产品定价优化以及区域市场拓展等多方面研究提供了极具价值的数据基础。它能够帮助相关企业和研究人员深入洞察饮料销售的各个环节,从而做出更加科学、合理的决策,推动饮料行业的发展。
springboot项目基于Web的课程设计选题管理系统,含有完整的源码和报告文档
TMS WEB Cor0820(中文版).docx
电力系统调度 源荷不确定性matlab 程序语言:matlab+yalmip(可适用cplex或者gurobi作为求解器) 关键词:优化调度 源荷不确定性 模糊机会约束 碳交易 内容:参照考虑源荷两侧不确定性的含风电的低碳调度,引入模糊机会约束,程序包括储能、风光、火电机组及水电机组,解决了目标函数含有分类特征的约束问题、非线性约束 目标的线性转化问题,且考虑了机组的启停时间约束,目标函数考虑运行成本、弃风弃光和碳成本。 优势:有详细的资料,程序完整性好、模块化编程、注释逻辑分明、方便学习
springboot项目基于springboot的招聘系统的设计与实现,含有完整的源码和报告文档
几行简单判断闰年平年的代码
基于微信小程序的校园疫情防控管理平台设计与实现.docx
股票因子数据,包括了13411个研究分析股票的因子