java 读取sqlite_在Java中使用Sqlite数据库
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;/*** sqlite帮助类,直接创建该类示例,并调用相应的借口即可对sqlite数据库进行操作
*
* 本类基于 sqlite jdbc v56
*
*@authorhaoqipeng*/
public classSqliteHelper {final static Logger logger = LoggerFactory.getLogger(SqliteHelper.class);privateConnection connection;privateStatement statement;privateResultSet resultSet;privateString dbFilePath;/*** 构造函数
*@paramdbFilePath sqlite db 文件路径
*@throwsClassNotFoundException
*@throwsSQLException*/
public SqliteHelper(String dbFilePath) throwsClassNotFoundException, SQLException {this.dbFilePath =dbFilePath;
connection=getConnection(dbFilePath);
}/*** 获取数据库连接
*@paramdbFilePath db文件路径
*@return数据库连接
*@throwsClassNotFoundException
*@throwsSQLException*/
public Connection getConnection(String dbFilePath) throwsClassNotFoundException, SQLException {
Connection conn= null;
Class.forName("org.sqlite.JDBC");
conn= DriverManager.getConnection("jdbc:sqlite:" +dbFilePath);returnconn;
}/*** 执行sql查询
*@paramsql sql select 语句
*@paramrse 结果集处理类对象
*@return查询结果
*@throwsSQLException
*@throwsClassNotFoundException*/
public T executeQuery(String sql, ResultSetExtractor rse) throwsSQLException, ClassNotFoundException {try{
resultSet=getStatement().executeQuery(sql);
T rs=rse.extractData(resultSet);returnrs;
}finally{
destroyed();
}
}/*** 执行select查询,返回结果列表
*
*@paramsql sql select 语句
*@paramrm 结果集的行数据处理类对象
*@return*@throwsSQLException
*@throwsClassNotFoundException*/
public List executeQuery(String sql, RowMapper rm) throwsSQLException, ClassNotFoundException {
List rsList = new ArrayList();try{
resultSet=getStatement().executeQuery(sql);while(resultSet.next()) {
rsList.add(rm.mapRow(resultSet, resultSet.getRow()));
}
}finally{
destroyed();
}returnrsList;
}/*** 执行数据库更新sql语句
*@paramsql
*@return更新行数
*@throwsSQLException
*@throwsClassNotFoundException*/
public int executeUpdate(String sql) throwsSQLException, ClassNotFoundException {try{int c =getStatement().executeUpdate(sql);returnc;
}finally{
destroyed();
}
}/*** 执行多个sql更新语句
*@paramsqls
*@throwsSQLException
*@throwsClassNotFoundException*/
public void executeUpdate(String...sqls) throwsSQLException, ClassNotFoundException {try{for(String sql : sqls) {
getStatement().executeUpdate(sql);
}
}finally{
destroyed();
}
}/*** 执行数据库更新 sql List
*@paramsqls sql列表
*@throwsSQLException
*@throwsClassNotFoundException*/
public void executeUpdate(List sqls) throwsSQLException, ClassNotFoundException {try{for(String sql : sqls) {
getStatement().executeUpdate(sql);
}
}finally{
destroyed();
}
}private Connection getConnection() throwsClassNotFoundException, SQLException {if (null == connection) connection =getConnection(dbFilePath);returnconnection;
}private Statement getStatement() throwsSQLException, ClassNotFoundException {if (null == statement) statement =getConnection().createStatement();returnstatement;
}/*** 数据库资源关闭和释放*/
public voiddestroyed() {try{if (null !=connection) {
connection.close();
connection= null;
}if (null !=statement) {
statement.close();
statement= null;
}if (null !=resultSet) {
resultSet.close();
resultSet= null;
}
}catch(SQLException e) {
logger.error("Sqlite数据库关闭时异常", e);
}
}
}
java 读取sqlite_在Java中使用Sqlite数据库相关推荐
- java 读取集合到流中_Java 10:将流收集到不可修改的集合中
java 读取集合到流中 Java 10引入了几种新方法来促进不可修改集合的创建. List.copyOf , Set.copyOf和Map.copyOf方法从现有实例创建新的集合实例. 例如: Li ...
- 原生java读取properties与spring中@value、@ConfigurationProperties读取配置文件
原生java读取properties与spring中@value.@ConfigurationProperties读取配置文件 1.properties类 Properties 继承于 Hashtab ...
- java中删除sqlite数据库语句_sqlite sql创建数据库语句
iOS开发数据库篇-SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **p ...
- 在 Android 应用程序中使用 SQLite 数据库以及怎么用
part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...
- android属于数据库管理系统,详细谈谈Android系统中的SQLite数据库的应用
数据库是按照数据结构来组织.存储和管理数据的仓库,而在信息话的社会,数据库又不单单仅限与数据的相关内容,现在数据库技术是管理信息系统.办公自动化系统.决策支持系统等各类信息系统的核心部分,而SQL是结 ...
- Android中实现SQLite数据库CRUD操作的两种方式
Android中实现SQLite数据库CRUD操作的两种方式 SQLite是一款轻量级的关系型数据库,具有运行速度.占用资源少的特点.通常只需要几百KB的内存就够了,因此特别适合在移动设备上使用.SQ ...
- 安卓视频开发 mysql_在Android应用中使用SQLite数据库(传智播客视频笔记)
在Android应用中使用SQLite数据库 应用生成的数据库文件保存为/data/data/应用包名/databases/name.db,生成的文件可用SQLite Expert打开 (name是自 ...
- uwp连接mysql数据库_在 UWP 应用中使用 SQLite 数据库
在 UWP 应用中使用 SQLite 数据库Use a SQLite database in a UWP app 06/26/2020 本文内容 可以使用 SQLite 在用户设备上的轻量级数据库中存 ...
- java中删除sqlite数据库语句_sqlite数据库的介绍与java操作sqlite的实例讲解
sqlite数据库的介绍与java操作sqlite的实例讲解 发布时间:2020-10-03 05:40:34 来源:脚本之家 阅读:92 作者:Lee_Tech sqlite是啥? 1.一种轻型数据 ...
最新文章
- 美国AI博士一针见血:Python这样学最容易成为高手!
- [翻译] NMock 简介
- golang 获取文件行数
- 代码覆盖率工具 Istanbul 入门教程
- tab in English
- QList 列表指针的操作 释放
- java反射机制浅谈
- oauth2和jwt_使用具有OAuth2的Web应用程序和JWT的使用来调用API – WSO2 API Manager
- 树莓派python交互界面实例_玩转树莓派-RaspBerry,使用Python开发定制界面
- 第三周总结 类、对象、包
- 推荐系统(5)-深度推荐模型-AutoRec、DeepCrossing、NeuralCF、PNN、WideDeep、FNN、DeepFM、NFM
- iphone7测试软件,iPhone7如何测试网速 ping命令测试网速方法介绍
- AI队列长度检测:使用YOLO进行视频中的对象检测
- JSP中鼠标禁用代码
- 软件工程革命 三部曲 —— 前传
- TODA-MES电池行业解决方案
- js中事件捕获和事件冒泡
- linux accept 修改数据包,Linux协议栈accept和syn队列问题
- Android蓝牙音量调节,安卓 蓝牙音量控制 Bluetooth Volume Control v2.40 付费高级特别版...
- wps2005插件开发之旅
热门文章
- MSDC 4.3 接口规范(4)
- 深入了解Elasticsearch存储
- 学计算机单身率为什么高,单身率特别高的大学专业大全 2020哪些专业单身率高...
- linux下java程序乱码,解决linux下java程序(例如applet)中文乱码问题
- 明日之后android和ios,明日之后安卓ios互通区有哪些?ios安卓混服区详细介绍
- 以下11條小建議,幫助你們的異地戀一直保持活力
- 什么是次世代游戏建模?角色和场景建模,哪个比较容易
- python提取时长2s以内的单词音频的韵母基频,以及单词词长信息
- 什么是云原生架构?云原生和应用上云不是一码事!
- 2022必看花展 IFEX昆明国际花卉园艺展,新展期11月11-13日