JDBC访问及操作SQLite数据库
SQLite 是一个开源的嵌入式关系数据库,其特点是高度便携、使用方便、结构紧凑、高效、可靠。 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下,只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库。
SQLite的下载页面:http://www.sqlite.org/download.html
window操作系统下载:sqlite-dll-win32-x86-3081002.zip及sqlite-shell-win32-x86-3081002.zip。解压2个压缩包,并将解压后的路径添加到系统变量的path中。
在命令行中操作SQLite数据库的做基本的命令如下。
创建数据库:sqlite3 test.db
创建表:sqlite> create table mytable(id integer primary key, value text);
插入数据:sqlite> insert into mytable(id, value) values(1, 'Micheal');
查询数据:sqlite> select * from mytable;
JDBC connector for SQLite的地址为:https://bitbucket.org/xerial/sqlite-jdbc/downloads
下载连接驱动,如sqlite-jdbc-3.8.7.jar,并将jar包加入到Java工程的引用中。
使用下面的类测试是否能够正常的访问及操作SQLite数据库。
package test; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement; public class Test {
public static void main(String[] args) throws Exception {
Connection conn = null;
ResultSet rs = null;
PreparedStatement prep = null;
try {
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:test.db");
Statement stat = conn.createStatement();
stat.executeUpdate("drop table if exists people;");
stat.executeUpdate("create table people (name, occupation);");
prep = conn.prepareStatement("insert into people values (?, ?);");
prep.setString(1, "Gandhi");
prep.setString(2, "politics");
prep.addBatch();
prep.setString(1, "Turing");
prep.setString(2, "computers");
prep.addBatch();
prep.setString(1, "Wittgenstein");
prep.setString(2, "smartypants");
prep.addBatch();
conn.setAutoCommit(false);
prep.executeBatch();
conn.setAutoCommit(true);
rs = stat.executeQuery("select * from people;");
while (rs.next()) {
System.out.println("name = " + rs.getString("name"));
System.out.println("job = " + rs.getString("occupation"));
}
//分页时,可以使用ResultSet来完成分页rs.absolute(100),也可以sql语句中完成分页select ... limit 100,10;
//下面是释放数据库连接的过程,使用数据库连接池时不应该释放连接,而是将连接重新放到连接池中。
//以代理的方式生成Connection的对象,调用Connection的close方法时将Connection加入到线程池中。线程池中加入的是Connection的代理对象即可。
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} finally {
if (prep != null) {
try {
prep.close();
} finally {
if (conn != null) {
conn.close();
}
}
}
}
}
}
}
}
我们可以在工程的根目录下发现一个名为test.db的文件,这就是刚创建的数据库文件。我们也可以指定test.db为其他的路径下的SQLite数据库文件。
下面是一些SQLite的其他常用的命令:
设置格式化查询结果: sqlite> .mode column
sqlite> .header on
修改表结构,增加列:sqlite> alter table mytable add column email text not null '' collate nocase;
创建视图: sqlite> create view nameview as select * from mytable;
创建索引:sqlite> create index test_idx on mytable(value);
格式化输出数据到 CSV 格式:sqlite >.output [filename.csv ]
sqlite >.separator ,
sqlite > select * from test;
sqlite >.output stdout
从 CSV 文件导入数据到表中:sqlite >create table newtable ( id integer primary key, value text );
sqlite >.import [filename.csv ] newtable
JDBC访问及操作SQLite数据库的更多相关文章
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- 8.1 使用Python操作SQLite数据库
SQLite是内嵌在Python中的轻量级.基于磁盘文件袋额数据库管理系统,不需要安装和配置服务,支持使用SQL语句来访问数据库.该数据库使用C语言开发,支持大多数SQL91标准,支持原子的.一致的. ...
- C#操作SQLite数据库增、删、改、查 欢迎转载
C#操作SQLite数据库增.删.改.查 欢迎转载 转载记得留下链接地址哦!!! 最近项目上要使用SQLite数据库,不怕大伙笑话毕业四年多了,一直使用Oracle或者MySQL或者SQLServer ...
- Python操作SQLite数据库的方法详解
Python操作SQLite数据库的方法详解 本文实例讲述了Python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简单介绍 SQLite数据库是一款非常小巧的嵌入式开 ...
- EF6操作Sqlite数据库的项目兼容性问题
vs2010无法正确打开2015创建的项目里面操作Sqlite数据库时使用EF6创建的edmx文件(会显示空白) 但是可以正常查询 vs2015无法正确打开2010创建的项目里面操作Sqlite数 ...
- EF操作sqlite数据库时的项目兼容性问题
问题:vs2015打不开vs2010建的操作sqlite的实体数据模型edmx文件 原因: 当前电脑必须先安装:驱动库及sqlite的vs拓展 正常情况下安装驱动和拓展后,vs2015就应该可以正常打 ...
- UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库
在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLit ...
- Android中操作SQLite数据库
我又回到了安卓的学习当中,忙来忙去终于忙的差不多有时间做自己的事情了,这感觉实在是太棒了!!本来想写android的控件以及他们的监视器的,但是我查了查android的手册,基本上都能查到,但是查有些 ...
随机推荐
- HDU 1017 A Mathematical Curiosity【水,坑】
A Mathematical Curiosity Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java ...
- 南阳理工oj_The Triangle
The Triangle 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1) Figure 1 ...
- Elasticsearch介绍,一些概念的笔记
Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 什么是搜索? 如果用数据库做搜索会怎么样? 什么是全文检索和Lucene? 什么是Elasticsearch? Elasti ...
- c语言基础学习08_内存管理
=============================================================================涉及到的知识点有:一.内存管理.作用域.自动变 ...
- UEP-弹窗给选中数据赋值
弹窗给选中数据赋值:t/** * 设置分派员 */ function onDispatchMan(){ var rec=ajaxgrid.getCheckedRecords(); if(rec.len ...
- HttpUrlConnection使用与总结
/* * URL请求的类别分为二类,GET与POST请求.二者的区别在于: * a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet, ...
- CCF系列之ISBN号码(201312-2)
试题名称: ISBN号码 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规 ...
- [数据分析工具] Pandas 功能介绍(二)
条件过滤 我们需要看第一季度的数据是怎样的,就需要使用条件过滤 体感的舒适适湿度是40-70,我们试着过滤出体感舒适湿度的数据 最后整合上面两种条件,在一季度体感湿度比较舒适的数据 列排序 数据按照某 ...
- 04 整合IDEA+Maven+SSM框架的高并发的商品秒杀项目之高并发优化
Github:https://github.com/nnngu 项目源代码:https://github.com/nnngu/nguSeckill 关于并发 并发性上不去是因为当多个线程同时访问一行数 ...
- js 原型 函数和对象的关系
函数就是对象的一种 instanceof 可以做判断 var fn = function(){}; fn instanceof Object //true Object构造函数的prototype ...