java sqlite数据库连接_[Sqlite]-->Java使用jdbc连接Sqlite数据库进行各种数据操作的详细过程...

本文介绍了如何在Java中使用jdbc连接SQLite数据库进行数据操作。包括安装SQLite,创建数据源,将数据库文件复制到本地,配置Eclipse环境,加载jdbc jar包,编写Java代码连接并操作数据库,以及解决过程中遇到的问题。
摘要由CSDN通过智能技术生成

引:

序言:

sqlite是遵守ACID 的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。

不像常见的客户-服务器范例,sqlite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。

一,准备sqlite数据源

由于sqlite是内存数据库,还会有一个数据文件,本质上是去访问一个文件,所以可以把linux下的sqlite的库文件copy出来到自己笔记本本地,然后在调用java程序访问操作sqlite库。

(1),安装sqlite

下载地址: Wget http://www.sqlite.org/2014/sqlite-autoconf-3080403.tar.gz

开始安装:

tar xvfz sqlite-autoconf-3080403.tar.gz

cd sqlite-autoconf-3080403

./configure --prefix=/usr/local

make

make install

(2),准备数据源

[root@localhost sqlite-autoconf-3080403]# sqlite3 tim.db

sqlite version 3.8.4.3 2014-04-03 16:53:12

Enter ".help" for usage hints.

sqlite> .table

sqlite> create table t1(id int);

sqlite> insert into t1 select 1;

sqlite> .exit

[root@localhost sqlite-autoconf-3080403]# ll tim.db

-rw-r--r-- 1 root root 2048 Aug 29 09:34 tim.db

[root@localhost sqlite-autoconf-3080403]#

(3),通过SecureFX工具把tim.db数据文件copy到本地磁盘E盘根目录下面,如下图所示:

二,开始准备Eclipse环境加载jdbc的jar包,jdbc的jar包 sqlitejdbc-v033-nested.jar,下载地址为:http://pan.baidu.com/s/1hqj7tT6

并且将其添加到classpath系统环境变量中:点击java工程右键,选择最后一个选项Properties,再选择Java Build Path,再选择Libraries,再选择Add External JARs...,然后加载本地的sqlitejdbc-v033-nested.jar包,

加载路径过程如下图所示:

三,编写java代码连接sqlite数据库操作(1),创建java代码测试类

package foo;

import java.sql.Connection;

import java.DriverManager.ResultSet.Statement;

/**

*@author Tim

/

publicclass Javasqlite {

publicstatic void main(String[]args){

// TODO Auto-generated method stub

try {

// 0 连接sqlite的JDBC

String sql=\"jdbc:sqlite://e:/tim.db\";

Class.forName("org.sqlite.JDBC\");

// 1 建立一个数据库名zieckey.db的连接,如果不存在就在当前目录下创建之

Connection conn=DriverManager.getConnection(sql;

Statement stat=conn.createStatement;

// 2 创建一个表tbl1,录入数据

stat.executeUpdate"drop table if exists tbl1;\";

stat"create table if not exists tbl1(name varchar(20),salary int);\";//创建一个表,两列

stat"insert into tbl1 values(\'ZhangSan\',8000);\";// 插入数据

stat"insert into tbl1 values(\'LiSi\',7800);\""insert into tbl1 values(\'WangWu\',5800);\""insert into tbl1 values(\'ZhaoLiu\',9100);\";

ResultSet rs=stat.executeQuery"select * from tbl1;\";// 查询数据

System.out.println"创建表结构录入数据操作演示:\";

while(rs.next){ // 将查询到的数据打印出来

System.print"name = \"+rs.getString"name\"+\",\";// 列属性一

System"salary = \""salary\";// 列属性二

}

rs.close;

// 3 修改表结构,添加字段 address varchar(20)default \'changsha\'"alter table tbl1 add column address varchar(20) not null default \'changsha\'; \""insert into tbl1 values(\'HongQi\',9000,\'tianjing\');\""insert into tbl1(name,salary) values(\'HongQi\',9000);\";// 插入数据

rs"表结构变更操作演示:\";// 列属性二

System"address = \""address\";// 列属性三

}

rs;

conn;// 结束数据库的连接

} catch(Exception e){

e.printStackTrace;

}

}

}

四,调试运行:

(1),第一次调试报错如下:

Exception in thread "main" java.lang.ClassNotFoundException: org.sqlite.JDBC

at java.net.URLClassLoader$1.run(URLClassLoader.java:200)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

at java.lang.ClassLoader.loadClass(ClassLoader.java:307)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:252)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:169)

解决方法:首先需要将sqlitejdbc-v056.jar包加入到工程中:

右键你的工程->Build Path->configure Build Path->Libraries->Add External JARs->

找到sqlitejdbc-v033-nested.jar包就可以了。

(2),再运行报错如下:

jdbc:sqlite://E:/u/sqllite/db/powerlong_208.db

java.sql.sqlException: out of memory

at org.sqlite.DB.throwex(DB.java:252)

at org.sqlite.NestedDB.open(NestedDB.java:47)

at org.sqlite.Conn.(Conn.java:36)

at org.sqlite.JDBC.connect(JDBC.java:38)

at java.sql.DriverManager.getConnection(Unknown Source)

at foo.Main.main(Main.java:41)

问题解决:是数据源的路径有问题,java不识别大写的E:盘,String sql="jdbc:sqlite://E:/tim.db";中的E:换成e:就可以调试通过了。

五,运行结果,代码类里面右键选择Run As,再选择Java Application,执行结果如下所示:创建表结构录入数据操作演示:

name = ZhangSan,salary = 8000

name = LiSi,salary = 7800

name = WangWu,salary = 5800

name = ZhaoLiu,salary = 9100

表结构变更操作演示:

name = HongQi,name = HongQi,address = tianjing

操作界面如下所示:

六,后续继续研究:(1)windows下研究sqlite安装使用

(2)java代码如何直接远程连接linux上面的sqlite库

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值