当前位置: 首页 > 面试题库 >

Java和SQLite

柳刚豪
2023-03-14
问题内容

我对单个文件数据库提供的简洁性感到着迷。可以使用哪些驱动程序/连接器库来连接SQLite并将其与Java一起使用。

我发现了一个包装器库http://www.ch-werner.de/javasqlite,但是还有其他更著名的项目吗?


问题答案:

在使用SQLite和Java 搜索信息时找到了你的问题。只是想我要补充我的回答,我也贴在我的博客。

我已经用Java编码了一段时间了。我也了解SQLite,但从未使用过……好吧,我在其他应用程序中使用过它,但从未在我编写的应用程序中使用过。因此,本周我需要一个项目来使用它,而且它是如此简单!

我找到了SQLite的Java JDBC驱动程序。只需将JAR文件添加到你的类路径中,然后导入java.sql。*

他的测试应用程序将创建一个数据库文件,发送一些SQL命令以创建一个表,在表中存储一些数据,然后将其读回并显示在控制台上。它将在项目的根目录中创建test.db文件。你可以使用运行此示例java -cp .:sqlitejdbc-v056.jar Test

package com.rungeek.sqlite;

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 {
        Class.forName("org.sqlite.JDBC");
        Connection 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);");
        PreparedStatement 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);

        ResultSet rs = stat.executeQuery("select * from people;");
        while (rs.next()) {
            System.out.println("name = " + rs.getString("name"));
            System.out.println("job = " + rs.getString("occupation"));
        }
        rs.close();
        conn.close();
    }
  }


 类似资料:
  • 我试图建立一个应用程序作为一个学习经验。我得到了一个空指针异常,但它是在第二次调用代码时发生的。 这里有人能帮忙吗? 这是堆栈跟踪

  • 问题内容: 我很好奇,是否有人对提供对MSMQ的访问的Java库有任何建议?我已经下载了J-Integra Java- COM库的试用版,并构建并运行了他们的MSMQ示例应用程序,但是我很好奇是否有任何好的(免费的)替代方案。我遇到了一些JNI实现,例如jMSMQ和其他一些实现,但是如果可能的话,我宁愿避免使用JNI。 我们还研究了一些.NET <-> JMS互操作解决方案,例如JNBridge(

  • 我的第二个问题是:为什么在获得session.setAttribute()之后必须使用它来打印新值。我的逻辑如下。正如我们所知,每个servlet只实例化一次--我获取属性(session.getAttribute(COUNTER)),检查我是否不同于null,然后递增它,如果我注释setAttribute,我将无法看到新的递增值。为什么我必须重新设置才能得到正确的值?当我按refresh时,我发

  • 这个示例代码来自一本Java书籍,从墙上的99瓶啤酒到没有啤酒打印出这首歌。问题是,当墙上是1瓶啤酒时,它仍然写着瓶子。我试图通过在末尾添加部分来解决这个问题。但是,它仍然显示1瓶啤酒在墙上,我瓶啤酒在墙上。 我不知道该改变什么来解决这个问题。是否创建另一个while部分? 如果你能给他们一个提示,这样我就可以自己解决它,那也很酷!因为我知道我的实际歌曲输出是在第一个if部分,但我不知道我应该在哪

  • 问题内容: 在Linux中,是否可以在tomcat6上部署使用Java 7编写的Web应用程序?如果是这样,需要修改什么配置才能使其正常工作? 我已经尝试过更改文件中的变量并重新启动,但是根据tomcat管理器网页,它仍在使用1.6,并且只有以1.6或更低版本编写的应用程序才能正确部署。 我在不同位置安装了jdk 1.6和1.7。 问题答案: 使用Java JDK 1.7.0编译servlet时遇

  • 问题内容: 在阅读了Java HttpURLConnection上的所有文档之后,我仍然很困惑,因为它执行哪种池化以及如何处理连接。 例如下面的代码 是否都需要冲洗并关闭两者,以使基础套接字可重复使用? 是否会关闭底层套接字(从而使其无法重用)?是否会影响这种行为? 如果我使用不同的URL对象,但具有相同的URL,则从它们创建的s是否共享底层套接字?URL的主机部分相同但路径不同时如何? 何时会破