当前位置: 首页 > 知识库问答 >
问题:

使用DataSource通过(Xerial)SQLite jdbc驱动程序连接到SQLite

轩辕经赋
2023-03-14

Java教程说有两种方法可以通过JDBC连接到数据库:使用DriverManager类(旧的,不推荐)和DataSource类。

我明白如何做它与DriverManager:

Connection con = DriverManager.getConnection("jdbc:sqlite:mytest.db");
...

但我无法找到如何使用DataSource的SQLite通过JDBC。SQLite(或JDBC驱动程序提供程序,我不知道如何正确地调用它)是否支持使用DataSource?

我正在使用xerial/sqlite jdbc驱动程序从java使用sqlite(https://github.com/xerial/sqlite-jdbc)

我最好的猜测是,我将使用org.sqlite.SQLiteDataSource类(它在sqlite-jdbc-3.15.1.jar的Xearysqlite-jdbc驱动程序),但是如何使用呢?是这样吗?我也猜想,如何做到这一点应在Xeara驱动文档,但他们只给出了如何使用DriverManager连接的例子。

因此,我请求古鲁的善意帮助,以确认此X射线驱动程序/jar不支持DataSource语法,或给出如何做到这一点的例子,或建议与DataSource支持替代驱动程序(从JavaSQLite),或其他建议...

Java教程

JDBC驱动程序管理器—JDBC DriverManager类定义可以将Java应用程序连接到JDBC驱动程序的对象。DriverManager传统上是JDBC体系结构的主干。它很小也很简单。

标准扩展包javax。命名和javax。sql允许您使用注册了Java命名和目录接口的数据源对象™ (JNDI)命名服务,用于建立与数据源的连接。您可以使用任何一种连接机制,但建议尽可能使用数据源对象。

共有1个答案

曹兴贤
2023-03-14

我最好的猜测是我将使用org。sqlite。SQLiteDataSource类(对于Xerial sqlite jdbc驱动程序,它在sqlite-jdbc-3.15.1.jar中提供),

是的,似乎有可能。

但是怎么做呢?

我刚刚尝试了以下方法,效果很好:

package com.example.sqlite.sqlite_test;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.sqlite.SQLiteDataSource;

public class SqliteTestMain {

    public static void main(String[] args) {
        SQLiteDataSource ds = new SQLiteDataSource();
        ds.setUrl("jdbc:sqlite::memory:");
        try (Connection conn = ds.getConnection()) {
            System.out.println("Connected.");
            String sql = 
                    "SELECT COUNT(*) AS n FROM \"sqlite_master\"";
            try (
                    Statement s = conn.createStatement();
                    ResultSet rs = s.executeQuery(sql)) {
                rs.next();
                System.out.printf(
                        "The \"sqlite_master\" table contains %d row(s).%n", 
                        rs.getInt(1));
            }
        } catch (SQLException e) {
            e.printStackTrace(System.err);
        }
    }

}
 类似资料:
  • 我正在尝试使用本教程连接Oracle数据库。当我使用命令行:java-cp c:\jdbc-test\ojdbc6.jar;c:\jdbc-test OracleJDBC我已经将ojdbc6.jar与OracleJDBC.java放在同一个文件夹中。现在我需要在Eclipse上运行它,但它给我一个错误: 是因为OJDBC6.jar位置吗?

  • 问题内容: 我正在尝试使用PDO与Microsoft提供的驱动程序连接到现有的SQL Server数据库。 我看过使用odbc,dblib,mssql等的示例,但是我相信这些驱动程序的连接字符串应使用’sqlsrv’吗? 有没有很好的例子来说明如何正确地做到这一点?如果我应该通过其他方法进行此操作,请告诉我。谢谢! 问题答案: 那么,关于PDO的最好之处在于,访问任何数据库都非常容易。只要已经安装

  • 我使用JBoss作为7.1.1.final作为我的应用程序服务器。 我已经在JBoss社区用户论坛上发布了我的问题:question-here jboss-as-cmt war工作得很好,即我能够将客户添加到发票中。我可以psql进入数据库引擎,我可以看到所有的记录。我唯一的问题是我不能使用h2console webapp进入我创建的jboss-as-cmt postgres数据库。 我使用:“o

  • 我无法成功地将MS Access连接到R。在堆栈溢出时读取其他线程时,我遵循了使用32位访问、将Rstudio更改为32位以及使用microsoft Access odbc驱动程序的建议。我不知道该怎么办... 我使用了以下说明: null 请帮忙,不胜感激。我无法单独从其他R中收集足够的信息来访问连接线程。

  • 我想在MongoDB中使用SSL。默认情况下,它没有启用,因此必须使用必要的选项从源代码编译。我按照官方文件拿到了v2。6.4二进制文件在新部署的运行Ubuntu 14.04的服务器上构建并运行良好。到目前为止一切都很好。 接下来,我按照官方文档中的描述设置了mon神。我确实按照他们的示例使用自我认证的密钥进行测试。配置的相关部分如下所示: 如果我然后运行客户端并指定使用SSL,我连接很好。()。

  • 这很奇怪。我使用的是运行VirtualBox 4.2.6的Mac OS X 10.7.5 64位主机。我有一个Windows 7 SP1来宾(64位),带有运行Microsoft SQL Server Express 2012的桥接网络。我将 SQL Server 配置为在端口 1433 上使用 TCP/IP,而不是动态端口(设置为空,而不是 0)。Windows 7 来宾的 IPv4 地址为 1