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数据库相关推荐

  1. java 读取集合到流中_Java 10:将流收集到不可修改的集合中

    java 读取集合到流中 Java 10引入了几种新方法来促进不可修改集合的创建. List.copyOf , Set.copyOf和Map.copyOf方法从现有实例创建新的集合实例. 例如: Li ...

  2. 原生java读取properties与spring中@value、@ConfigurationProperties读取配置文件

    原生java读取properties与spring中@value.@ConfigurationProperties读取配置文件 1.properties类 Properties 继承于 Hashtab ...

  3. java中删除sqlite数据库语句_sqlite sql创建数据库语句

    iOS开发数据库篇-SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **p ...

  4. 在 Android 应用程序中使用 SQLite 数据库以及怎么用

    part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...

  5. android属于数据库管理系统,详细谈谈Android系统中的SQLite数据库的应用

    数据库是按照数据结构来组织.存储和管理数据的仓库,而在信息话的社会,数据库又不单单仅限与数据的相关内容,现在数据库技术是管理信息系统.办公自动化系统.决策支持系统等各类信息系统的核心部分,而SQL是结 ...

  6. Android中实现SQLite数据库CRUD操作的两种方式

    Android中实现SQLite数据库CRUD操作的两种方式 SQLite是一款轻量级的关系型数据库,具有运行速度.占用资源少的特点.通常只需要几百KB的内存就够了,因此特别适合在移动设备上使用.SQ ...

  7. 安卓视频开发 mysql_在Android应用中使用SQLite数据库(传智播客视频笔记)

    在Android应用中使用SQLite数据库 应用生成的数据库文件保存为/data/data/应用包名/databases/name.db,生成的文件可用SQLite Expert打开 (name是自 ...

  8. uwp连接mysql数据库_在 UWP 应用中使用 SQLite 数据库

    在 UWP 应用中使用 SQLite 数据库Use a SQLite database in a UWP app 06/26/2020 本文内容 可以使用 SQLite 在用户设备上的轻量级数据库中存 ...

  9. java中删除sqlite数据库语句_sqlite数据库的介绍与java操作sqlite的实例讲解

    sqlite数据库的介绍与java操作sqlite的实例讲解 发布时间:2020-10-03 05:40:34 来源:脚本之家 阅读:92 作者:Lee_Tech sqlite是啥? 1.一种轻型数据 ...

最新文章

  1. 美国AI博士一针见血:Python这样学最容易成为高手!
  2. [翻译] NMock 简介
  3. golang 获取文件行数
  4. 代码覆盖率工具 Istanbul 入门教程
  5. tab in English
  6. QList 列表指针的操作 释放
  7. java反射机制浅谈
  8. oauth2和jwt_使用具有OAuth2的Web应用程序和JWT的使用来调用API – WSO2 API Manager
  9. 树莓派python交互界面实例_玩转树莓派-RaspBerry,使用Python开发定制界面
  10. 第三周总结 类、对象、包
  11. 推荐系统(5)-深度推荐模型-AutoRec、DeepCrossing、NeuralCF、PNN、WideDeep、FNN、DeepFM、NFM
  12. iphone7测试软件,iPhone7如何测试网速 ping命令测试网速方法介绍
  13. AI队列长度检测:使用YOLO进行视频中的对象检测
  14. JSP中鼠标禁用代码
  15. 软件工程革命 三部曲 —— 前传
  16. TODA-MES电池行业解决方案
  17. js中事件捕获和事件冒泡
  18. linux accept 修改数据包,Linux协议栈accept和syn队列问题
  19. Android蓝牙音量调节,安卓 蓝牙音量控制 Bluetooth Volume Control v2.40 付费高级特别版...
  20. wps2005插件开发之旅

热门文章

  1. MSDC 4.3 接口规范(4)
  2. 深入了解Elasticsearch存储
  3. 学计算机单身率为什么高,单身率特别高的大学专业大全 2020哪些专业单身率高...
  4. linux下java程序乱码,解决linux下java程序(例如applet)中文乱码问题
  5. 明日之后android和ios,明日之后安卓ios互通区有哪些?ios安卓混服区详细介绍
  6. 以下11條小建議,幫助你們的異地戀一直保持活力
  7. 什么是次世代游戏建模?角色和场景建模,哪个比较容易
  8. python提取时长2s以内的单词音频的韵母基频,以及单词词长信息
  9. 什么是云原生架构?云原生和应用上云不是一码事!
  10. 2022必看花展 IFEX昆明国际花卉园艺展,新展期11月11-13日