- package com.asc.db;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- /**
- * 数据库公共类,提供基本数据库操作
- *
- * @author raymon
- *
- */
- public class DBManager {
- // 默认数据库
- private static final String DB_NAME = "asc.db";
- // 数据库版本
- private static final int DB_VERSION = 1;
- // 执行open()打开数据库时,保存返回的数据库对象
- private SQLiteDatabase mSQLiteDatabase = null;
- // 由SQLiteOpenHelper继承过来
- private DatabaseHelper mDatabaseHelper = null;
- // 本地Context对象
- private Context mContext = null;
- private static DBManager dbConn= null;
- // 查询游标对象
- private Cursor cursor;
- /**
- * SQLiteOpenHelper内部类
- */
- private static class DatabaseHelper extends SQLiteOpenHelper {
- DatabaseHelper(Context context) {
- // 当调用getWritableDatabase()或 getReadableDatabase()方法时,创建一个数据库
- super(context, DB_NAME, null, DB_VERSION);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- db.execSQL("CREATE TABLE ad_record(id PRIMARY KEY NOT NULL, adUrl TEXT, apMac TEXT, createDate DATETIME);");
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- db.execSQL("DROP TABLE IF EXISTS ad_record");
- onCreate(db);
- }
- }
- /**
- * 构造函数
- *
- * @param mContext
- */
- private DBManager(Context mContext) {
- super();
- this.mContext = mContext;
- }
- public static DBManager getInstance(Context mContext){
- if (null == dbConn) {
- dbConn = new DBManager(mContext);
- }
- return dbConn;
- }
- /**
- * 打开数据库
- */
- public void open() {
- mDatabaseHelper = new DatabaseHelper(mContext);
- mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();
- }
- /**
- * 关闭数据库
- */
- public void close() {
- if (null != mDatabaseHelper) {
- mDatabaseHelper.close();
- }
- if (null != cursor) {
- cursor.close();
- }
- }
- /**
- * 插入数据
- * @param tableName 表名
- * @param nullColumn null
- * @param contentValues 名值对
- * @return 新插入数据的ID,错误返回-1
- * @throws Exception
- */
- public long insert(String tableName, String nullColumn,
- ContentValues contentValues) throws Exception {
- try {
- return mSQLiteDatabase.insert(tableName, nullColumn, contentValues);
- } catch (Exception e) {
- throw e;
- }
- }
- /**
- * 通过主键ID删除数据
- * @param tableName 表名
- * @param key 主键名
- * @param id 主键值
- * @return 受影响的记录数
- * @throws Exception
- */
- public long delete(String tableName, String key, int id) throws Exception {
- try {
- return mSQLiteDatabase.delete(tableName, key + " = " + id, null);
- } catch (Exception e) {
- throw e;
- }
- }
- /**
- * 查找表的所有数据
- * @param tableName 表名
- * @param columns 如果返回所有列,则填null
- * @return
- * @throws Exception
- */
- public Cursor findAll(String tableName, String [] columns) throws Exception{
- try {
- cursor = mSQLiteDatabase.query(tableName, columns, null, null, null, null, null);
- cursor.moveToFirst();
- return cursor;
- } catch (Exception e) {
- throw e;
- }
- }
- /**
- * 根据主键查找数据
- * @param tableName 表名
- * @param key 主键名
- * @param id 主键值
- * @param columns 如果返回所有列,则填null
- * @return Cursor游标
- * @throws Exception
- */
- public Cursor findById(String tableName, String key, int id, String [] columns) throws Exception {
- try {
- return mSQLiteDatabase.query(tableName, columns, key + " = " + id, null, null, null, null);
- } catch (Exception e) {
- throw e;
- }
- }
- /**
- * 根据条件查询数据
- * @param tableName 表名
- * @param names 查询条件
- * @param values 查询条件值
- * @param columns 如果返回所有列,则填null
- * @param orderColumn 排序的列
- * @param limit 限制返回数
- * @return Cursor游标
- * @throws Exception
- */
- public Cursor find(String tableName, String [] names, String [] values, String [] columns, String orderColumn, String limit) throws Exception{
- try {
- StringBuffer selection = new StringBuffer();
- for (int i = 0; i < names.length; i++) {
- selection.append(names[i]);
- selection.append(" = ?");
- if (i != names.length - 1) {
- selection.append(",");
- }
- }
- cursor = mSQLiteDatabase.query(true, tableName, columns, selection.toString(), values, null, null, orderColumn, limit);
- cursor.moveToFirst();
- return cursor;
- } catch (Exception e) {
- throw e;
- }
- }
- /**
- *
- * @param tableName 表名
- * @param names 查询条件
- * @param values 查询条件值
- * @param args 更新列-值对
- * @return true或false
- * @throws Exception
- */
- public boolean udpate(String tableName, String [] names, String [] values, ContentValues args) throws Exception{
- try {
- StringBuffer selection = new StringBuffer();
- for (int i = 0; i < names.length; i++) {
- selection.append(names[i]);
- selection.append(" = ?");
- if (i != names.length - 1) {
- selection.append(",");
- }
- }
- return mSQLiteDatabase.update(tableName, args, selection.toString(), values) > 0;
- } catch (Exception e) {
- throw e;
- }
- }
- /**
- * 执行sql语句,包括创建表、删除、插入
- *
- * @param sql
- */
- public void executeSql(String sql) {
- mSQLiteDatabase.execSQL(sql);
- }
- } //原文: http://forhope.iteye.com/blog/1461412
相关推荐
国产AI芯片实战:用寒武纪MLU370低成本部署DeepSeek-R1,实测推理效果与成本分析
本文详细介绍了寒武纪MLU370芯片在部署DeepSeek-R1大模型时的实战效果与成本优势。通过实测数据对比,MLU370在推理速度、能效比和本地化服务方面表现突出,尤其适合智能客服、内容生成等场景,可显著降低硬件投入和运维成本。
Android开发——SQLite数据库的使用
在Android中应用程序需要处理大量并发连接、高并发读写等高负载场景,SQLite可能会表现出性能瓶颈,不如传统的关系型数据库管理系统(RDBMS),因此不建议在这些场景中使用SQLite。SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。我们先需要建立一个数据库对象,以读的方式打开,并指定数据库的位置。在onCreate方法里面,防止第一次点击的时候,没有user.db这个文件,因此写了一个创建db文件的代码。当表头为null的时候为全部读取。
UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-4: ordinal not in range(128)
python3报错处理:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-4: ordinal not in range(128) 一、报错场景 // 报错代码 Traceback (most recent call last): File "test_autoo3_2.py", line 214, in <module> main() File "test_autoo3_2.py",
Android Studio 数据库Sqlite3 安卓工具类(简便开发)
目录一、数据库查看方式二、封装工具类三、使用Sqlite工具类(直接调用)1.增2.删3.改4.查使用App Inspection工具,此工具包括网络请求、数据库访问等功能,可以实时监控应用的行为。如图所示:源码:DatabaseHelper.java 实体类定义,查询使用,只用增、删、改 不用添加。UserBean .java 三、使用Sqlite工具类(直接调用) 1.增 2.删 3.改 4.查
ROS2+MoveIt2+Gazebo仿真实战:从零搭建六轴机械臂控制闭环
本文详细介绍了如何从零搭建一个完整的ROS2+MoveIt2+Gazebo六轴机械臂仿真控制闭环。通过手写URDF模型、配置MoveIt2运动规划、集成Gazebo物理仿真与ROS2 Control控制器,最终实现RViz中规划轨迹、Gazebo中同步执行的完整数字孪生验证平台,为机器人算法开发和硬件验证提供低成本、高效的仿真解决方案。
第三天:Python基础语法详解
Python代码规范与注释最佳实践 摘要: 本文深度解析Python缩进规则与代码结构的技术规范,包括缩进的底层原理、语法规则和错误处理。详细阐述Python注释系统,涵盖行内注释、文档字符串和类型注释等多种形式,并提供工业级代码组织方案。研究显示,良好的缩进可提升40%的代码识别速度,降低50%的认知负荷。文章还对比了Sphinx、pdoc等主流文档生成工具,给出企业级项目中的注释编写原则和模板建议,帮助开发者构建更可维护的Python代码。
Android : SQLite 增删改查—简单应用
Android : SQLite 增删改查—简单应用
智慧安防:基于Java+YOLOv8的视频AI识别平台设计与实现
张工,我们的园区智慧安防项目又出问题了!用Python写的YOLOv8 demo,拉3路RTSP流就卡,视频延迟超过5秒,入侵检测误报率太高,一到晚上光线差就全是误报,而且和我们的Java安防平台对接太麻烦,还要搭个消息队列,架构复杂得要死!“别慌,用Java+YOLOv8啊!
Android SQLite 一个工具类搞定基本的数据增删改查
最近因为项目需要,不能使用第三方的数据库工具了,比如 ormlite。所以自己写了一个工具类,可以完成基本的增删改查的通用SQlite工具,很长时间没有怎么研究过SQLite,写的不好的地方,请见谅,使用有什么问题可以留言,我尽能力解决,有建议也很欢迎提出。另外其中会用到LogUtil.("","");方法,这个是自己封装的一个log类,也会在下面贴出来,很简单。
【27】软考软件设计师——数据流图(DFD)补全题满分精讲|下午15分大题深度拆解
本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第27篇,深度精讲**下午案例题第1道必考大题:数据流图(DFD)补全**,该题单题分值高达**12 ~ 15分**,是整张试卷最稳的保底得分大题。我结合多年备考复盘与真题阅卷规则,超详细拆解DFD四大核心元素标准定义、机考绘图规范、三层分层逻辑、**父图子图平衡刚性扣分规则**,升级强化版「DFD满分补全三步法」;复刻历年高频真题完整流程,拆解缺失数据流定位、实体/存储辨析、平衡改错、文字需求对照全流程,配套**阅卷满分答题话术、机考避坑细则
使用Verilog实现QR分解——嵌入式 [设计与代码]
通过Verilog的硬件描述语言,我们可以将QR分解算法实现为硬件电路,并在嵌入式系统中高效地运行。本文将介绍如何使用Verilog设计并实现QR分解算法,该算法用于将一个矩阵分解为正交矩阵Q和上三角矩阵R。具体而言,QR分解通过对矩阵的列进行正交化处理,得到正交矩阵Q,并将对应的正交化结果存储在上三角矩阵R中。该算法通过将矩阵分解为两个部分,正交矩阵Q和上三角矩阵R,实现了对矩阵的分解和变换。模块,该模块接收待分解矩阵A,并输出正交矩阵Q和上三角矩阵R。下面给出了使用Verilog实现QR分解的源代码。
java sqlite 工具类_sqlite工具类
package com.asc.db;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLit...
各大厂薪资对比爬虫:Python采集OfferShow爆料数据
print(f"⚠️ API返回错误码: {data.get('code')}, msg: {data.get('msg')}")ax.set_title('各大厂薪资对比 (基于OfferShow爆料数据)', fontsize=16, fontweight='bold')stats.columns = ['人数', '平均年薪', '年薪中位数', '年薪标准差', '平均月薪', '平均月数']print(analyzer.get_position_stats('字节跳动').head(10))
Java 操作 sqlite 工具类
项目中通过 db 文件来上传数据,导出数据也需要导出成 db 文件。需要通过 sqlite 来读写 db 文件,实现创建表,插入数据,查询数据方法。
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
SQLite 工具类 SQLiteDB
【代码】SQLite 工具类 SQLiteDB。
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
SQLite3 JDBC Java工具类
结合阿里的Druid连接池,封装了个多线程安全的SQLite工具类。就2个Class,就能满足需要。示例类读取的数据库配置文件,IDEA为例放在工程的src/main/resources路径下,其它开发工具的话,只要确保classpath包含了配置文件。有一堆小工具,平时因为mysql用着方便,配置啊,临时的一些比对数据存在里面。根据配置文件,可以看到我们把数据库默认放在工程路径下的data/sqlite.db,需要改名字的话,自己改配置文件即可。
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
C#中SQLite的使用及工具类
SQLite简介# SQLite是一款轻型的数据库,一个数据库就是一个文件,详细介绍参考官网:https://www.sqlite.org/index.html SQLite 数据类型是一个用来指定任何对象的数据类型的属性。SQLite 中的每一列,每个变量和表达式都有相关的数据类型。 您可以在创建表的同时使用这些数据类型。SQLite 使用一个更普遍的动态类型系统。在 SQLite 中,值的数据类型与值本身是相关的,而不是与它的容器相关。 SQLite数据与vb.net教程常见的MySQL、SQ
SQLite工具类
//添加 System.Data.SQLite.dll 方可使用 using System; using System.Collections.Generic; using System.Data; using System.Data.SQLite; using System.Linq; using System.Text; namespace Deep.SQLite { /// &l...
python连接sqlite3工具类
简单使用python链接sqlite3工具类,代码可根据场景自行抽象。
java sqlite util 工具类,测试类
准备工作:下载sqlite-jdbc的jar包可以从maven 仓库下载:https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc/3.19.3java操作sqlite数据库简单的工具类:import java.lang.reflect.Method; import java.sql.Connection; import java.sql.D
封装sqlite工具类
思路解释 关闭数据库的时候,需要用局部变量保存QSqlDatabase对象,不然在移除数据库链接的时候会报内存泄漏警告 在进行增删改查之前,首先调用HasValidConnection判断是否有有效的数据库链接,然后GetConnectionName,利用返还的数据库链接名再获取数据库链接对象。注意,这里也需要使用局部变量来保存数据库链接,不然最后移除的时候可能会报内存泄漏 在进行增删改查之前,...
javafx集成Sqlite工具类,包含增删改查范例
javafx集成Sqlite工具类 * 包含增删改查范例 package com.hq.utils; import com.hq.database.entity.CollectionBox; import com.hq.database.entity.Patch; import com.hq.view.CollectionFrame; import java.sql.*; import jav...
C# Sqlite工具类
久未写博客。。。除了上代码依然不知道说啥,这就只是一个封装了数据库命令的工具参考了雨松的工具类 http://www.xuanyusong.com/archives/831只是在条件方便改写了一下,增加了 Operation 类,通过组合类实现条件的编写new DbLogicalAND(new DbCompareLessThan("id","10"), new DbCompareNotEqual(...
C# sqlite 操作工具类
本文介绍了一个功能全面的C# SQLite数据库工具类,主要特点包括: 基础功能完善:提供连接管理、DDL表操作、增删改查等基础数据库操作,支持自动释放资源 ORM支持:通过特性标记实现对象关系映射,包括表名映射、字段类型定义、主键自增、忽略字段等 多样化的操作方式: 支持实体操作和原生SQL操作 提供同步和异步两种调用方式 实现链式调用语法(类似MyBatis Wrapper) 提供InsertOrUpdate合并操作 类型安全: 使用枚举替代字符串定义字段类型和运算符 严格参数校验 完善的异常处理 扩展
【python】python 操作sqlite 日期的工具类
在Python中,可以使用datetime模块来操作日期和时间。该模块提供了许多方法和属性,使得我们可以方便地创建、比较和格式化日期和时间对象。在SQLite中,日期和时间被存储为文本字符串,格式为YYYY-MM-DD(日期)和HH:MM:SS.SSS(时间),其中SS.SSS表示秒和毫秒。SQLite还提供了一些日期和时间相关的函数,如date()、time()和datetime()等。
SQLite 增删改查的工具类
SQLite 增删改查的工具类
455



被折叠的 条评论
为什么被折叠?



