废话不多说:

优点,高并发读快速度读取超越所有主流大中型数据库

缺点,缺少同步机制,读写不能同时,且同时只能有一个写入线程

用途,硬盘式缓存

另附一SQLite工具类:

import java.io.FileWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.List;
import java.util.Map; public class SQLiteHelper { private static final String dbDriver = "org.sqlite.JDBC"; public static int createTable(String dbUrl, String sql) {
try {
if (sql == null || sql.trim().length() < 1)
return -1;
Class.forName(dbDriver); if (dbUrl.indexOf("jdbc:sqlite:") != 0) {
dbUrl = "jdbc:sqlite:" + dbUrl;
}
if (!dbUrl.endsWith(".db")) {
dbUrl = dbUrl + ".db";
} Connection con = DriverManager.getConnection(dbUrl);
con.setAutoCommit(true);
System.out.println(sql);
FileWriter wr = new FileWriter("create.sql", true);
wr.append(sql + "\n");
wr.close();
con.close();
return con.prepareStatement(sql).executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return -1;
} public static int excuteUpdate(String dbUrl, String sql, Object[]... params) {
try {
if (sql == null || sql.trim().length() < 1)
return -1;
Class.forName(dbDriver); if (dbUrl.indexOf("jdbc:sqlite:") != 0) {
dbUrl = "jdbc:sqlite:" + dbUrl;
}
if (!dbUrl.endsWith(".db")) {
dbUrl = dbUrl + ".db";
} Connection con = DriverManager.getConnection(dbUrl);
con.setAutoCommit(false); Object[] param = null;
PreparedStatement ps = con.prepareStatement(sql);
for (int i = 0; i < params.length;) {
if (params != null) {
param = params[i];
for (int j = 1; j <= param.length;) {
if (param[j - 1] == null) {
continue;
}
ps.setObject(j, param);
j++;
}
}
ps.addBatch();
i++;
} int num = ps.executeUpdate();
ps.clearBatch();
con.commit();
con.close();
return num;
} catch (Exception e) {
e.printStackTrace();
}
return -1;
} public static List<Map<String, Object>> readDb(String dbUrl, String sql, Object... param) {
try {
if (sql == null || sql.trim().length() < 1)
return null;
if (dbUrl.indexOf("jdbc:sqlite:") != 0) {
dbUrl = "jdbc:sqlite:" + dbUrl;
}
if (!dbUrl.endsWith(".db")) {
dbUrl = dbUrl + ".db";
}
Class.forName(dbDriver);
Connection con = DriverManager.getConnection(dbUrl);
PreparedStatement ps = con.prepareStatement(sql);
for (int j = 1; j <= param.length;) {
if (param[j - 1] == null) {
continue;
}
ps.setObject(j, param);
j++;
}
con.close();
return new ListResult(ps.executeQuery()).getListRestlt();
} catch (Exception e) {
e.printStackTrace();
}
return null;
} }

  

SQLite总结的更多相关文章

  1. 【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】

    由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库 ...

  2. UWP开发之ORM实践:如何使用Entity Framework Core做SQLite数据持久层?

    选择SQLite的理由 在做UWP开发的时候我们首选的本地数据库一般都是Sqlite,我以前也不知道为啥?后来仔细研究了一下也是有原因的: 1,微软做的UWP应用大部分也是用Sqlite.或者说是微软 ...

  3. 深入解析Sqlite的完美替代者,android数据库新王者——Realm

    写在前面: 又到一年一度七夕虐狗节,看着大家忍受着各种朋友圈和QQ空间还有现实生活中的轮番轰炸,我实在不忍心再在这里给大家补刀,所以我觉得今天不虐狗,继续给大家分享有用的. 如果你比较关心androi ...

  4. VS15 preview 5打开文件夹自动生成slnx.VC.db SQLite库疑惑?求解答

    用VS15 preview 5打开文件夹(详情查看博客http://www.cnblogs.com/zsy/p/5962242.html中配置),文件夹下多一个slnx.VC.db文件,如下图: 本文 ...

  5. Android之SQLite数据存储

    一.SQLite保存数据介绍 将数据库保存在数据库对于重复或者结构化数据(比如契约信息)而言是理想之选.SQL数据库的主要原则之一是架构:数据库如何组织正式声明.架构体现于用于创建数据库的SQL语句. ...

  6. 【教程】SQLite数据库修复

    SQLite 大家都知道,就不多说了. 有时候数据量大了,或者存储过程中出现异常,数据库就可能会出问题. 这是以前公司产品出现过的问题,导致软件都打不开了,我花了不少时间才解决的,趁现在有空贡献出来. ...

  7. SQLite学习笔记(十)&&加密

    随着移动互联网的发展,手机使用越来越广泛,sqlite作为手机端存储的一种解决方案,使用也非常普遍.但是sqlite本身安全特性却比较弱,比如不支持用户权限,只要能获取到数据库文件就能进行访问:另外也 ...

  8. mono for android中使用dapper或petapoco对sqlite进行数据操作

    在mono for android中使用dapper或petapoco,很简单,新建android 类库项目,直接把原来的文件复制过来,对Connection连接报错部分进行注释和修改就可以运行了.( ...

  9. 【腾讯Bugly干货分享】微信iOS SQLite源码优化实践

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57b58022433221be01499480 作者:张三华 前言 随着微信iO ...

  10. 【腾讯Bugly干货分享】移动客户端中高效使用SQLite

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57b57f2a0703f7d31b9a3932 作者:赵丰 导语 iOS 程序能 ...

随机推荐

  1. 用java实现书城项目(简单增删改查2)

    书城项目 登录 dao 接口:UserDao Users login(String username,String password); 实现:UserDaoImpl QueryRunner quer ...

  2. 协议 UARST & 数据发送与接收

    STM32具有的协议 UASRT是通用异步/同步收发器,UART是通用异步收发器 串口空闲状态时高电平,开始传输数据时,第一个数据为固定的低电平: 数据:最后为高电平的停止位 奇偶校验:通过+1或者不 ...

  3. ncc - koa 后台源码加密打包工具 @vercel/ncc - webpack node打包更正规

    加个重点 webpack 打包更正规 安装 npm i -g @vercel/ncc 又发现一个 https://github.com/zeit/ncc npm i -g @zeit/ncc 卸载之前 ...

  4. 灰度发布、蓝绿部署、金丝雀发布和AB测试及在k8s中的实现

    灰度发布.蓝绿部署.金丝雀发布和AB测试都是软件开发和部署中常用的策略,每种策略都有其特定的用途和优势.下面是对这些策略的简要解释: 灰度发布(Grayscale Release): 灰度发布是一种逐 ...

  5. day01-数据库的安装和使用

    Java数据库的安装和使用 1.数据库的作用 一个问题:淘宝网.京东.微信抖音,都有各自的功能,那么我们退出系统的时候,为什么信息还在? 解决之道-文件,数据库 为了解决上诉问题,使用更加利于管理数据 ...

  6. Java valueOf() 方法---->摘抄

    valueOf(boolean b): 返回 boolean 参数的字符串表示形式.. valueOf(char c): 返回 char 参数的字符串表示形式. valueOf(char[] data ...

  7. Solon Web 文件上传的最佳实践

    文件上传是 Web 开发中最常见的一个应用场景.一般在处理数据时,会有两种常见的方案:直接把文件流放在内存里,或者把文件流先缓冲到磁盘. 1.如果是高频且文件极小 使用纯内存模式,默认即可.如果高频小 ...

  8. 2022北航软件研究生入学考试991考试大纲-数据结构与C

    991"数据结构与C语言程序设计"考试大纲 "数据结构与C语言程序设计"考试内容包括"数据结构"与"C语言程序设计"两门 ...

  9. 从0开始设计_基于STM32F1的RC522读写卡

    从0开始设计_基于STM32F1的RC522读写卡 1.介绍看网上很多RC522的教程都是基于读卡ID的,这个对于很多应用来说其实没有什么用,最近刚好有个项目需要读写卡,而RC522又是非常常用的且不 ...

  10. 基于proteus的555的门铃计数电路

    基于proteus的555的门铃计数电路 1.实验原理 555定时器可以作为单稳态触发器完成计数所需的时钟.门铃工作时,需要进行一次计数.计数器使用前面使用的4026就可以将结果直接显示在数码管上. ...