在Java中使用SQLite的教程

我一直想写一个在Java中使用SQLite的例子,但是很长时间都找不到一个真正合适的, 现在我终于找到了,我希望它可以帮助那些像我一样的Java新手走出困惑.

测试环境

Intel x86 Laptop
Windows XP SP2
Java2 JDK 1.5 Update 8
Netbeans IDE 5.0  import java.sql.*;
import org.sqlite.JDBC;
/**
* Very Basic SQLite Database Example
* @author Brandon Tanner
*/
public class SQLiteTest {
public static void main(String[] args) {
try {
// The SQLite (3.3.8) Database File
// This database has one table (pmp_countries) with 3 columns (country_id, country_code, country_name)
// It has like 237 records of all the countries I could think of.
String fileName = "c:/pmp.db";
// Driver to Use
// http://www.zentus.com/sqlitejdbc/index.html  Class.forName("org.sqlite.JDBC");
// Create Connection Object to SQLite Database
// If you want to only create a database in memory, exclude the +fileName
Connection conn = DriverManager.getConnection("jdbc:sqlite:"+fileName);
// Create a Statement object for the database connection, dunno what this stuff does though.
Statement stmt = conn.createStatement();
// Create a result set object for the statement
ResultSet rs = stmt.executeQuery("SELECT * FROM pmp_countries ORDER BY country_name ASC");
// Iterate the result set, printing each column
// if the column was an int, we could do rs.getInt(column name here) as well, etc.
while (rs.next()) {
String id  = rs.getString("country_id");  // Column 1
String code = rs.getString("country_code"); // Column 2
String name = rs.getString("country_name"); // Column 3
System.out.println("ID: "+id+" Code: "+code+" Name: "+name);
}
// Close the connection
conn.close();
}
catch (Exception e) {
// Print some generic debug info
System.out.println(e.getMessage());
System.out.println(e.toString());
}
}
}

下载

pmp.db– 例子中用到的数据库文件:http://www.pysquared.com/files/Java/JavaSQLiteExample/pmp.db

SQLiteTest.java- Java 源文件:http://www.pysquared.com/files/Java/JavaSQLiteExample/SQLiteTest.java

pmp_sqlite.sql– 用来建立数据库(pmp.db)的SQL语句.:http://www.pysquared.com/files/Java/JavaSQLiteExample/pmp_sqlite.sql

sqlite3.exe- SQLite 3.3.8 命令行程序用来创建和访问数据库(非必需).:http://www.pysquared.com/files/Java/JavaSQLiteExample/sqlite3.exe

sqlitejdbc.zip v027 (based on SQLite 3.3.8)- SQLiteJDBC 驱动.:http://www.pysquared.com/files/Java/JavaSQLiteExample/sqlitejdbc.zip

SQLite Administrator- (可选的) 我认为最好的一个免费的图形数据库管理工具,支持SQLite 2/3.:http://sqliteadmin.orbmu2k.de/

W3 Schools SQL Tutorial– 强力推荐的一套在线SQL语法教程.:http://www.w3schools.com/sql/default.asp

使用步骤

下载上面的文件.

对我来说最难的事情就是要把这个驱动放在什么地方Netbeans才能找到它. 我是把下载回来的两个文件(sqlitejdbc.dll 和sqlitejdbc.jar)放到了JDK中的JRE下的lib/ext 目录中(我的机器上是E:\Programs\Java\jdk1.5.0_08\jre\lib\ext,你可能是c:\Program Files\Java\jdk1.5.0_08\jre\lib\ext),这样就Netbeans就可以找到它了.

把pmp.db放到C盘的根目录下.

看一下SQLiteTest.java中的代码和注释,很抱歉没有文档的说明.

启动Netbeans, 创建一个新的工程, 加入我的例子文件然后编译运行. 程序将把数据库中的所有国家输出在标准输出流上.

附加说明 我是如何创建这个数据库文件的? 我用上面提供的pmp_sqlite.sql文件. 你可以看到每行SQL语句的后面都以分号结尾. 使用命令行工具, 输入 sqlite3 pmp.db 这样就可以创建一个数据库文件, 然后输入 .read pmp_sqlite.sql 导入SQL建表语句. 最后输入 .exit 保存数据库并退出. 在SQLite的网站上还有更多关于如何使用命令行工具创建和访问数据库的资料.

时间: 2024-09-30 11:38:47

在Java中使用SQLite的教程的相关文章

在Lua程序中使用SQLite的教程

  这篇文章主要介绍了在Lua程序中使用SQLite的教程,包括建立连接到基本的查询等一些操作,需要的朋友可以参考下 SQLite导入 我们可以用一个简单语句导入SQLite库,假设Lua中正确实现并已完成.在安装过程中,文件夹libsql包含数据库相关的文件. 代码如下: sqlite3 = require "luasql.sqlite3" 变量sqlite3将提供通过参照主sqlite3表访问该功能. 建立连接 我们成立了发起sqlite环境,然后创建环境的连接.它如下所示. 代码

JAVA中的观察者模式实例教程

观察者模式是一种行为设计模式.观察者模式的用途是,当你对一个对象的状态感兴趣,希望在它每次发生变化时获得通知.在观察者模式中,观察另外一个对象状态的对象叫做Observer观察者,被观察的对象叫着Subject被观察者.根据GoF规则,观察者模式的意图是: 定义对象之间一对多的依赖关系,一个对象状态改变,其他相关联的对象就会得到通知并被自动更新. Subject(被观察者)包含了一些需要在其状态改变时通知的观察者.因此,他应该提供给观察者可以register(注册)自己和unregister(注

在Lua程序中使用SQLite的教程_Lua

 SQLite导入 我们可以用一个简单语句导入SQLite库,假设Lua中正确实现并已完成.在安装过程中,文件夹libsql包含数据库相关的文件.   复制代码 代码如下: sqlite3 = require "luasql.sqlite3" 变量sqlite3将提供通过参照主sqlite3表访问该功能.建立连接 我们成立了发起sqlite环境,然后创建环境的连接.它如下所示. 复制代码 代码如下: local env  = sqlite3.sqlite3() local conn =

java sqlite-java了解sqlite时的问题

问题描述 java了解sqlite时的问题 java查询了一个employee.db的数据库,为啥控制台却显示"open emplotee.db sucessfully --(省略号为一些查阅结果)" 查询内容正常的,可是为啥提示打开emplotee.db成功?为什么是"t"不是"y"? 期待大神的回复,谢谢! 解决方案 open emplotee.db sucessfully 这一句是你自己程序打印的吧,那应该是你程序的逻辑有问题 解决方案二:

iOS中SQLite使用教程_IOS

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl.C#.PHP.Java等,还有ODBC接口,同样比起Mysql.PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快.SQLite第一个Alpha版本诞生于2

iOS App项目中引入SQLite数据库的教程_IOS

引入SQLitesqlite是纯C实现的,所以注定了它是一个跨平台利器,在Android与IOS下均能使用,而且完全可以写出通用的代码,方便我们移植.当然Android和IOS下都有封装过的sqlite给开发者使用,不过这样子一个是不方便移植,另一个是封装后的效率咋样我们也不知道,所以还是原生态的最健康.最后一个重要的原因就是原生的使用也是相当简单.我将在接下来的教程中为您一一讲解. 首先最重要的一点是在工程中导入sqlite,苹果的SDK已经给你包含进来了,所以只要导入一个叫 libsqlit

WP8.1中使用Sqlite轻型数据库开发教程

最近几个月开始将WP8的应用迁移到WP8.1,发现很多API都变了. 最令我印象深刻也最意外的一点是:[找不到MessageBox]了. 卧槽,找不到MessageBox...(此处省略100字) 回归正题,在WP8阶段,微软为本地数据库的操作提供了一系列API,需要的朋友可以通过:http://msdn.microsoft.com/zh-cn/library/hh202860查看. 不过在WP8.1(XAML)中这些API已经无法使用了,通过搜索一些资料,最终把以前的一些本地数据库操作API替

Java中的策略模式实例教程

策略模式是一种行为模式.用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略. 策略模式也被称作政策模式.实现过程为,首先定义不同的算法策略,然后客户端把算法策略作为它的一个参数.使用这种模式最好的例子是Collection.sort()方法了,它使用Comparator对象作为参数.根据Comparator接口不同实现,对象会被不同的方法排序.详细介绍请看java中的排序对象. 本文例子是,完成一个简单地购物车,两种付款策略可供选择,一为信用卡,另

Java中的状态模式实例教程

原文链接 作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com> 状态模式是一种行为设计模式.适用于当对象的内在状态改变它自身的行为时. 如果想基于对象的状态来改变自身的行为,通常利用对象的状态变量及if-else条件子句来扮演针对对象的不同行为.状态模式Context(环境)和State(状态)分离的方式既保证状态与行为的联动变化,又使得这种变化是条理明晰且松耦合的. Context是包含了状态引用的类,此引用指向一个状态的具体实现.并且帮助把对状态的请求委