java 连接sqlite数据库

        最近项目上要运行sqlite数据库,但是在使用的过程中发生了很多纠结的问题,让我心情很忧伤。但是我终于在话费一番功夫之后运行成功了,所以,我决定把我成功的经验拿来分享。

     首先java运行需要下载sqlite-jdbc的jar包,我在maven中心仓库中寻找合适的jar。如图:

java 连接sqlite数据库

我选择的是sqlite-jdbc的3.23.1版本的jar,但是后来发现这个版本的jar在官网中并不存在,

我的java是创建的maven项目,如图:

java 连接sqlite数据库

程序代码是这样的

package com.sqlite;

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

public class SqliteTest {
		public static void main(String[] args) throws ClassNotFoundException, SQLException {
			
			Class.forName("org.sqlite.JDBC");
			String db = "C:\\Users\\tdht\\Desktop\\test.db";
			Connection conn = DriverManager.getConnection("jdbc:sqlite:" + db);
			Statement state = conn.createStatement();
			ResultSet rs = state.executeQuery("select * from company;"); //查询数据
			while (rs.next()) { //将查询到的数据打印出来
	             System.out.print("name = " + rs.getString("name") + " "); //列属性一
	             System.out.println("age = " + rs.getString("age")); //列属性二
	         }
	        rs.close();
			conn.close();
			
		}
		
}

现在在官网查看有没有对应的sqlite下载

java 连接sqlite数据库

发现官网的下载的版本是3.25.2的因为3250200就是这样解释的,后面两个00不知道含义,但是前面的含义就是3.25.2

根据这个规则

sqlite-shell-win32-x86-<build#>.zip
sqlite-dll-win32-x86-<build#>.zip

(注意: <build#> 是 sqlite 的编译版本号)

我们可以直接编写url地址下载

但是我想下载的3.23.1的版本还是不确定的,如何确定呢?

就是查看版本信息

java 连接sqlite数据库

 

java 连接sqlite数据库

我搞错了,但是基本上很接近了,

最后拼接的url是:

https://www.sqlite.org/2018/sqlite-dll-win32-x86-3230000.zip

https://www.sqlite.org/2018/sqlite-tools-win32-x86-3230000.zip

下载之后全部解压到一个文件夹中,我这里是d:sqlite

然后配置环境变量Path

使用cmd

sqlite3 test.db

.databases

这样就创建了test.db文件。

创建db文件之后,就可以使用

图形可视化工具创建表和数据。

我这里下载的是sqlite studio,

选择

java 连接sqlite数据库

ok就连接好了。sqlite只能本地连接,就是只能是打开本地文件,没有ip地址连接啊,

然后创建表和数据


create table company(
id int primary key,
name varchar(20),
age short,
address varchar(50),
salary decimal(10,3)
);

insert into company values(1,'Paul', 32, 'California', 20000);
insert into company values(2,'Allen', 25, 'Texas', 15000);
insert into company values(3,'Teddy', 23, 'Norway', 20000);
insert into company values(4,'Mark', 25, 'Rich-Mond', 65000);
insert into company values(5,'David', 27, 'Texas', 85000);
insert into company values(6,'Kim', 22, 'South-Hal', 45000);
insert into company values(7,'James', 24, 'Houston', 10000);
insert into company values(8,'Paul', 24, 'Houston', 20000);
insert into company values(9,'James', 44, 'Norway', 5000);

这样数据就弄好了。

运行java项目,没有任何报错,输出结果:

name = Paul age = 32
name = Allen age = 25
name = Teddy age = 23
name = Mark age = 25
name = David age = 27
name = Kim age = 22
name = James age = 24
name = Paul age = 24
name = James age = 44