嵌入式数据库SQLite与Java

嵌入式数据库SQLite与Java

SQLite作为一个开源的嵌入式数据库产品,具有系统开销小,检索效率高的特性,适用于手机、PDA、机顶盒设备等电器,并且作为嵌入式数据库在可下载的消费类应用程序中运行的很好。这篇文章介绍嵌入式数据库产品SQLite的技术特点,并着重讨论研究与Java语言之间的接口,并以实例说明如何使用JAVA开发基于SQLite的应用程序。

通常我们采用各种数据库产品来实现对数据的存储、检索等功能,例如,Oracle,SQL Server,MySQL等等。这些产品除提供基本的查询,删除,添加等功能外,也提供了很多高级特性,如触发器,存储过程,数据备份恢复,全文检索功能等。但实际上,很多的应用,仅仅利用到了这些数据库产品的基本特性而已。而且在一些小型应用上,或者某些特殊场合的应用,比如桌面程序,这些数据库产品就明显有一些臃肿。在这些情况下,嵌入式数据库的优势就特别明显了。

嵌入式数据库无须独立运行的数据库引擎,它是由程序直接调用相应的API去实现对数据的存取操作。更直白的讲,嵌入式数据库是一种具备了基本数据库特性的数据文件。嵌入式数据库与其它数据库产品的区别是,前者是程序驱动式, 而后者是引擎响应式。嵌入式数据库的一个很重要的特点是它们的体积非常小,编译后的产品也不过几十K。这不但对桌面程序的数据存储方案是一个很好的选择,也使得它们可以应用到一些移动设备上。同时,很多嵌入式数据库在性能上也优于其它数据库,所以在高性能的应用上也常见嵌入式数据库的身影。

下面介绍的是开放源代码的嵌入式数据库,SQLite。同时侧重研究如何应用Java连接SQLite数据库,并开发基于SQLite的应用程序。

SQLite 是D ·理查德·希普开发出来的用一个小型C 库实现的一种强有力的嵌入式关系数据库管理体制。它提供了对SQL92 的大多数支持: 支持多表和索引、事务、视图、触发和一系列的用户接口及驱动

SQLite 实现了完备的、可嵌入的、零配置的SQL数据库引擎。它的特点包括:

1、事务处理是原子的、一致的、独立的和持久的(ACID),即使在系统崩溃和掉电以后。

2、零配置,即不需要设置和管理。

3、实现了绝大部分的SQL92标准。

4、一个单独的磁盘文件存储一个完整的数据库。

5、数据库文件在机器之间可自由共享。

6、支持数据库文件大小至2TB。

7、字符串和BLOG的大小只受限于可用存储器容量。

8、代码量小,即小于30K的C代码行和小于250K的代码空间(gcc 在i486上)

9、对于绝大多数普通操�

相关文档:

★如何权衡?

当你在权衡某个场合是否应该使用SQLite时,(在技术层面)至少要考虑如下几点:

◇能否发挥SQLite的某些特长?

◇是否还有其它的替代方案?

◇是否有啥潜在的技术风险?

想清楚上述问题之后,再做出决策。

★SQLite的特点

关于SQLite的特长,在上次的帖子中已经介绍过了。 ......

因为项目需要,需要使用sqlite,在csdn的blog中,发现了此文章,

以下系列均摘自:http://www.cnblogs.com/hustcat/  谢谢!

1、SQLite介绍

自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分。正与数据库管理系统非常关键一样,它们也变得非常庞大,并占用了相当多的系统资源,增� ......

SQLite和其他大部分现代SQL数据库在基本设计目标上是不同的,它的目标是简单。SQLite遵循这一目标,即使这样偶尔会导致某些特性实现的低效化。下面列举了SQLite的一些缺陷:

SQL-92特性方面

正如前面提到的,SQLite不支持SQL-92的在很多企业数据库系统中可用的一些特性。

如:

外键约束(可解析的,但非强制)

很多ALT ......

SQLite不仅可以把数据库 放在硬盘上,还可以放在内存中(sqlite3_open(":memory:", &db)),经测试,同样条件下数据库放在内存中比放在硬盘上插入记录速度快差不多3倍。但数据库放在内存中时有如下缺陷:

1、断电或程序崩溃后数据库就会消失,你需要定期Attach到硬盘上备份;

2、在内存中的数据库不能被别的进程 ......

判断表存在的方法很简单,网上很多:

SELECT COUNT(*) from sqlite_master where type='table' and name='%s'" % tname;

那么判断字段是否存在, 或者说如何判断表的版本是否最新就只需要:

select * from sqlite_master where tbl_name='tblContactList';

sqlite_master 的表结构如下:

type   |name&nbsp ......

sqlite3 java 内存,嵌入式数据库SQLite与Java相关推荐

  1. 嵌入式数据库SQLite与Java

    嵌入式数据库SQLite与Java SQLite作为一个开源的嵌入式数据库产品,具有系统开销小,检索效率高的特性,适用于手机.PDA.机顶盒设备等电器,并且作为嵌入式数据库在可下载的消费类应用程序中运 ...

  2. Java与嵌入式数据库SQLite的结合

    为什么80%的码农都做不了架构师?>>>    最近研究了一下嵌入式数据库,并使用Java与一个叫做SQLite的轻量级数据库结合写了个小程序,这个过程中也获得了不少经验,下面来总结 ...

  3. 嵌入式数据库SQLite的编译、安装和使用[ZT]

    嵌入式数据库SQLite的编译.安装和使用 下文介绍的内容都是基于 RedHat Linux 9.0 平台的. 引言:sqlite简介 sqlite是嵌入式SQL数据库引擎SQLite(SQLite ...

  4. android 内嵌 数据库,安卓开发之嵌入式数据库sqlite的操作方法

    安卓App开发经常会需要嵌入式数据库sqlite的辅助,它可以存放我们必要的应用数据,下面介绍下如何使用java连接读取sqlite中的数据. 本文中的代码经本人测试可用,可以参考. 代码如下: DB ...

  5. Linux网络编程小项目sqlite,嵌入式数据库sqlite

    *************************************** * 嵌入式数据库sqlite在LPC22XX上的应用 * ******************************* ...

  6. 【嵌入式实验】《嵌入式数据库 sqlite 移植及使用》

    嵌入式数据库 sqlite 移植及使用 一.实验目的 二.实验内容 三.预备知识 四.实验设备及工具(包括软件调试工具) 五.实验步骤 实验一:移植嵌入式数据库 sqlite 1~5:安装 sqlit ...

  7. 嵌入式数据库Sqlite移植教程-转

    嵌入式数据库Sqlite移植教程 sqlite-3.3.6编译安装与交叉编译全过程详细记录 本文介绍的内容都是基于 Linux RedHat 9.0 平台的. 一.PC机编译安装 请阅读在安装包里的 ...

  8. 南京邮电大学嵌入式系统开发实验3:嵌入式数据库sqlite移植及使用

    实验3  嵌入式数据库sqlite移植及使用 一.实验目的 理解嵌入式软件移植的基本方法,掌握sqlite数据库软件移植的步骤,掌握sqlite开发的两种方式-命令模式和C代码开发模式的使用方法,并编 ...

  9. [转载] Java内存管理-你真的理解Java中的数据类型吗(十)

    参考链接: Java中的字符串类String 1 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 推荐阅读 第一季 0.Java的线程安全.单例模式.JVM内存结构等知识 ...

  10. Sqlite 移动嵌入式数据库Sqlite的日常SQL操作语句汇总

    序言:     嵌入式数据库Sqlite的基本sql使用汇总,使用测试起来,与关系型数据库mysql在语法上有很多的相似之处,先准备测试数据: CREATE TABLE COMPANY(ID INT ...

最新文章

  1. ASP.NET 2.0 X64的奇怪问题
  2. 整数实现求整数和算法
  3. [docker] 04 使用docker容器
  4. Java中的Map、Set、List各种方式遍历
  5. flutter引入高德地图_Flutter笔记-调用原生IOS高德地图sdk
  6. java虚拟机之三--理解Java虚拟机体系结构
  7. 一个简单限速器的java实现[2]
  8. 【codeforces 718 CD】C. Sasha and ArrayD. Andrew and Chemistry
  9. MariaDB安装、卸载以及相关设置(Linux服务器Mysql部署)
  10. FreeSWITCH 初步
  11. Java失宠,谷歌宣布Kotlin现在是Android开发的首选语言
  12. mysql基于PHP的校园竞赛信息网站 毕业设计源码221230
  13. 就北京来说,有对 PM2.5 有用的空气净化器么?
  14. 针对win10激活出现的一系列问题解决方法
  15. 设备故障率高的四大原因及对策分析
  16. 雷达距离分辨力的推导
  17. 驾校微机室计算机操作流程,学车
  18. 领域驱动设计——柔性设计
  19. Perl语言面向对象入门
  20. 高速PCB的特征阻抗设计

热门文章

  1. 跳过H5页面视频的方法
  2. STM32CubeMX新建工程+基本IO配置过程
  3. 二十一世纪大学英语读写基础教程学习笔记(原文)——3 - Mothers(母亲)
  4. 搜狗百度seo推广优化需要注意的三大事项
  5. ANX9833|硅谷数模ANX9833方案电路|ANX9833中文设计资料|ANX9833代理
  6. 毫米波技术入局智能家居,是大材小用还是技术革命?
  7. 3DLut表实现log视频的后期调色原理
  8. android 尺寸
  9. 干货|浅谈iOS端短视频SDK技术实现
  10. wc,鹅厂码农最常用的三大编程语言,Java竟然没上榜!