`
ranyut
  • 浏览: 259239 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

SQLite文本数据库JDBC连接使用介绍

阅读更多
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-jdbc-3.32.3.2.jar-支持信创环境loongarch64、mips64el

    "sqlite-jdbc-3.32.3.2.jar"是这个驱动程序的特定版本,它包含了用于连接SQLite数据库的必要组件。 这个版本的sqlite-jdbc驱动特别强调对信创(创新信息技术)环境的支持,这通常指的是中国自主研发的CPU架构和操作...

    jdbc连接各种数据库方式

    5. **常用数据库JDBC连接写法.txt** 这个文本文件很可能包含了常用的JDBC连接代码片段,例如基本的连接建立、查询和关闭过程,针对不同数据库的特定配置,以及处理异常的代码模板。 学习和理解这些内容将帮助...

    sqlite数据类型详细介绍+javaJDBC连接sqlite小例子

    使用Java JDBC连接SQLite数据库,首先需要在项目中引入SQLite-JDBC驱动。在Java代码中,通过以下步骤建立连接: 1. 引入JDBC驱动:在项目中添加SQLite-JDBC的依赖,例如,如果你使用Maven,可以在pom.xml文件中添加...

    sqlite-jdbc-3.32.3.2.jar,支持mips64elloongarch64可

    在Java中,使用SQLite JDBC驱动非常简单,只需添加对应的jar文件到类路径中,然后按照JDBC标准的步骤建立数据库连接,执行SQL语句。例如: ```java import java.sql.Connection; import java.sql.DriverManager; ...

    SQLite JDBC Driver

    SQLite JDBC Driver是一个用于Java应用程序与SQLite数据库之间进行连接的驱动程序。它允许Java开发者通过Java Database Connectivity (JDBC) API来操作SQLite数据库,实现数据的存取、查询、更新等功能。SQLite是一...

    sqlitejdbc-0.5.4.jar

    3. 创建连接:使用`JDBC`类的`connect()`方法创建到SQLite数据库的连接。例如: ```java Connection conn = JDBC.connect("jdbc:sqlite:my_database.db"); ``` 这将创建一个到名为`my_database.db`的SQLite...

    sqlite-jdbc-3.32.3.2.jar,支持mips64elloongarch64可以在mips6

    这个特定的版本,sqlite-jdbc-3.32.3.2.jar,是针对SQLite数据库的一个接口,它允许Java应用程序通过JDBC(Java Database Connectivity)API连接到SQLite数据库,执行SQL查询,插入、更新和删除数据,以及进行其他...

    SQlite数据库笔记总结详解

    在本文中,我们将深入探讨SQLite数据库的相关知识点,包括其原理、特性、API使用、数据类型、SQL语法以及常见操作。 1. SQLite原理与特性: - **轻量级**: SQLite不需要独立的服务器进程,它作为一个库直接嵌入到...

    jxl.jar+sqlitejdbc-v056.jar_用java连接Excel和SQLite3的两个类包

    - **建立连接**:使用`DriverManager.getConnection("jdbc:sqlite:/path/to/your/database.db")`建立到SQLite数据库的连接。 - **执行SQL语句**:通过Statement或PreparedStatement对象执行查询、插入、更新和删除...

    java: SQLite使用实例

    在Java中,我们通常会使用SQLite-JDBC驱动来连接SQLite数据库,这个驱动允许Java程序通过JDBC接口与SQLite数据库进行交互。 首先,我们需要在项目中引入SQLite-JDBC驱动。如果你使用的是Maven,可以在pom.xml文件中...

    SQlite数据库以及响应的jar包

    在Java中使用SQLite,通常需要一个特定的JDBC驱动,即sqlite-jdbc.jar,这个jar包提供了连接SQLite数据库的接口和方法。 SQLite数据库的特点: 1. **轻量级**:SQLite数据库文件就是一个普通的文件,无需安装和管理...

    Informix数据库驱动(亲测)

    标题中的“Informix数据库驱动(亲测)”指的是用于连接Informix数据库的Java驱动程序,它允许Java应用程序通过JDBC(Java Database Connectivity)接口与Informix数据库进行交互。这个驱动已经由发布者亲自测试并确认...

    Sqlite实例及应用

    - 开发者可以使用SQLite的API或绑定库(如Java的SQLite-JDBC,C#的System.Data.SQLite等)直接在代码中操作数据库。 - 在桌面应用中,SQLite常用于本地数据存储,例如配置信息、用户设置或者临时缓存数据。 4. **...

    连接数据库登录界面记事本

    1. **选择数据库驱动**:根据所使用的数据库类型(如MySQL、SQL Server、Oracle或SQLite等),你需要选择对应的数据库驱动程序。例如,如果你使用的是MySQL,可能需要JDBC驱动(Java Database Connectivity)。 2. ...

    android通过jxl读excel存入sqlite3数据库

    本篇文章将详细介绍如何使用Java的jxl库来读取Excel文件,并将数据存入SQLite 3数据库。首先,确保在项目中引入了jxl和SQLite JDBC驱动的jar包,这两个库分别用于处理Excel文件和与SQLite数据库交互。 1. **jxl库的...

    sqlite数据库

    在Android系统中,SQLite 被深度集成到运行时环境中,每个应用都可以直接使用SQLite 数据库。考虑到移动设备资源有限,Android 并未采用 JDBC,而是提供了特定的 API 供开发者操作数据库。数据库文件通常存放在 `...

    Matlab 2012a 调用 sqlite必备jar文件

    总的来说,通过正确配置MATLAB的类路径和使用SQLite JDBC驱动,你可以在Matlab 2012a环境中方便地与SQLite数据库进行交互,执行各种数据库操作,从而扩展MATLAB的功能,满足更复杂的数据处理需求。

    JDBC_Sybase.zip_jdbc Sybase _sybase _sybase jdbc_sybase jdbc dow

    标题中的“JDBC_Sybase.zip_jdbc Sybase _sybase _sybase jdbc_sybase jdbc dow”表明这是一个关于使用Java JDBC连接Sybase数据库的资源包。这个压缩文件可能包含了示例代码、数据库文件以及相关说明文档,帮助...

    sqlite 支持中文模糊查询

    4. **API或驱动兼容性**:如果你通过编程语言与SQLite交互,确保所使用的API或驱动(如Python的sqlite3模块、Java的JDBC驱动等)也支持中文字符。 5. **查询优化**:虽然LIKE操作符方便,但其性能可能不如全文搜索...

Global site tag (gtag.js) - Google Analytics