SQLite文本数据库JDBC连接使用介绍
SQLite三种JDBC驱动的区别
SQLite Wrapper by Christian
http://www.ch-werner.de/javasqlite/
这个驱动其实是在本地C/C++的SQLite上用JDBC实现进行了包装。大小100+K。
优点:体积小;速度快
缺点:依赖本地SQLite驱动
SQLite Zentus Driver
http://www.zentus.com/sqlitejdbc/
这个驱动是SQLite数据库的纯Java实现,仅需要这个驱动就可以操作SQLite数据库文件。大小2.6M。
优点:无其他依赖
缺点:速度稍慢(纯Java实现)
SQLite Xerial Driver
http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC
这个驱动扩展了Zentus版本,并且在jar中加入了Windows、Linux、Mac OS X三种本地SQLite驱动库,使四种驱动并存于jar包中。其目的在于在不同的操作系统中自动使用不同的本地驱动(在这三种以外的系统中则使用纯Java实现的驱动),既保证无其他依赖,又保证速度最快。但是因为包含这么多版本的驱动,所以就比较大,大小有3M。
优点:速度快;无其他依赖
缺点:体积大
xerial官方网站
注意sqlite-jdbc-3.8.5-pre1.jar 、sqlite-jdbc4-3.8.2-SNAPSHOT.jar 这两个版本在Linux服务器上有BUG
会出现 java.lang.NoClassDefFoundError: org/sqlite/NativeDB
解决方法:使用版本 sqlite-jdbc-3.7.15-M1.jar
使用Demo
public class JDBCConnectionUtil {
private ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>();
private static Logger logger = Logger.getLogger(JDBCConnectionUtil.class);
public Connection getConnection() throws Exception {
Connection connection = threadLocal.get();
if (connection == null || connection.isClosed()) {
try {
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:D\:/kaven/workcopy/Database.db");
threadLocal.set(connection);
} catch (Exception e) {
logger.error("获取JDBC连接出错", e);
throw e;
}
}
return connection;
}
public int executeUpdate(String sql) throws Exception{
Connection connection = null;
Statement stmt = null;
int res = 0;
try {
connection = getConnection();
connection.setAutoCommit(false);
stmt = connection.createStatement();
res = stmt.executeUpdate(sql);
connection.commit();
stmt.close();
connection.close();
return res;
} catch (Exception e) {
logger.error("", e);
throw e;
}
}
/**
* 判断表是否存在
* @param tableName 表名
* @return
* @throws Exception
*/
public static boolean isExist(String tableName) throws Exception {
JDBCConnectionUtil util = new JDBCConnectionUtil();
String testSQL = "select id from "+tableName;
Connection connection = null;
Statement stmt = null;
try {
connection = util.getConnection();
stmt = connection.createStatement();
stmt.executeQuery(testSQL);
}catch(Exception e){
if(e.getMessage() != null && e.getMessage().indexOf("no such table: "+tableName) != -1){
return false;
}
throw e;
}
return true;
}
}
}
图形化客户端工具
Sqliteman-win32
该工具有个Bug:图形化操作时,在原表上添加新的字段时会把原来的PK主键弄掉,而且不能重新设置(使用SQL语句也不行,SQLite不支持设置主键约束的SQL指令)
解决办法:在工具中直接写SQL语句添加新字段。
相关推荐
SQLite 安装包 sqlite3 及sqlite数据库jdbc jar包 2分不能再少了
sqliteJDBC,sqlite连接数据库
pb9通过odbc连接sqlite数据库,包括odbc驱动、pb自动创建odbc连接的代码、数据窗口查询表中的数据。另包括两个sqlite数据库管理工具
windows上的sqlite ODBC连接驱动,安装配置好后,可以使用ODBC连接访问数据库文件
本代码是在xcode4.2下编写,如要在他之下版本下编译,需要修改一小部分代码及加上手动内存管理 代码的主要用途是在IOS下面读取sqlite3的数据库。
PB 通过JDBC连接SQLite,用的是sqlite-jdbc-3.23.1 .jar包
目前使用的Sqlite版本是3.6.11,只要有可能,将随时跟踪并升级至Sqlite最新版本。数据库内部文本编码为UTF-8。易语言sqlite3_static.lib支持库为静态支持库,需要易系统5.0版本的支持,需要系统核心支持库5.0版本的...
sqlite3是文本数据库,使用非常方便,支出sql语句。
sqlite-jdbc-3.8.7.jar下载,用于java与sqlite数据库的连接
数据库sqlite 小型数据库数据库sqlite
使用SQLite本地数据库以及有关如何使用的简介。
源码调用sqlite3.dll接口API实现SQLite3数据库操作。Tags:sqlite3。
赠送jar包:sqlite-jdbc-3.15.1.jar; 赠送原API文档:sqlite-jdbc-3.15.1-javadoc.jar; 赠送源代码:sqlite-jdbc-3.15.1-sources.jar; 赠送Maven依赖信息文件:sqlite-jdbc-3.15.1.pom; 包含翻译后的API文档:...
PHP操作sqlite数据库 a、 如何连接sqlite数据库? if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) { select * from sqlite_master; echo "数据库连接成功!n ";
赠送jar包:sqlite-jdbc-3.34.0.jar; 赠送原API文档:sqlite-jdbc-3.34.0-javadoc.jar; 赠送源代码:sqlite-jdbc-3.34.0-sources.jar; 赠送Maven依赖信息文件:sqlite-jdbc-3.34.0.pom; 包含翻译后的API文档:...
SQLite(创建数据库)
该jar包支持信创环境中连接sqlite数据库,包含各种环境so文件、可以解决再信创环境下连接问题
介绍node-sqlite3 API,并对API初步封装,方便开发人员调用,实现业务逻辑。
研究了两天,用sqlite的ODBC驱动成功访问sqlite本地数据库
SQlite数据库工具 供比较两个SQLite数据库所用。