1、使用sqlitedev安装和管理数据库,为sqlite3,创建的数据库默认在sqlite的安装目录下;
2、项目中引入sqlite-jdbc-3.7.2.jar;
3、添加测试类,如下:
package com.zcb.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* 测试sqlite数据库
* @author zcb
*
*/
public class MySQliteTest {
private Connection conn=null;
@Before
public void getConnection() {
// synchronized (conn) {
if (conn == null) {
try{
// 连接SQLite的JDBC
Class.forName("org.sqlite.JDBC");
// 建立一个数据库名zieckey.db的连接,如果不存在就在当前目录下创建之
conn = DriverManager
.getConnection("jdbc:sqlite:c:/Program Files/SqliteDev/zcbtest","--","--");
//
// Statement stat = conn.createStatement();
//
// // stat.executeUpdate(
// // "create table tbl1(name varchar(20), salary int);"
// // );//创建一个表,两列
// // stat.executeUpdate(
// // "insert into tbl1 values('ZhangSan',8000);" ); //插入数据
// // stat.executeUpdate( "insert into tbl1 values('LiSi',7800);"
// // );
// // stat.executeUpdate( "insert into tbl1 values('WangWu',5800);"
// // );
// // stat.executeUpdate(
// // "insert into tbl1 values('ZhaoLiu',9100);" );
//
// ResultSet rs = stat
// .executeQuery("Select * From current_status_tb;"); // 查询数据
ResultSet rs = stat
.executeQuery("SELECT date('now');"); // 查询数据
//
// while (rs.next()) { // 将查询到的数据打印出来
//
// System.out.print("name = " + rs.getString("product_name")
// + " "); // 列属性一
System.out.print("name = " + rs.getString(1)+ " "); // 列属性一
//
// System.out.println("machine = "
// + rs.getString("machine_id")); // 列属性二
//
// }
// rs.close();
// conn.close(); // 结束数据库的连接
}catch(Exception e){
e.printStackTrace();
}
}
// }
}
@Test
public void mytest(){
try{
Statement stat = conn.createStatement();
ResultSet rs = stat
.executeQuery("Select * From current_status_tb;"); // 查询数据
// ResultSet rs = stat
// .executeQuery("SELECT date('now');"); // 查询数据
//
// stat.executeUpdate("insert into current_status_tb(data_id,product_name,machine_id) " +
// "values(3,'abc','acb');");
while (rs.next()) { // 将查询到的数据打印出来
System.out.print("name = " + rs.getString("product_name")
+ " "); // 列属性一
System.out.println("machine = "
+ rs.getString("machine_id")); // 列属性二
}
rs.close();
}catch(Exception e){
e.printStackTrace();
Assert.assertTrue(false);
}finally{
}
}
@After
public void tearDown(){
try{
if(conn!=null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
Assert.assertTrue(false);
}
}
}
4.补充说明
4.1 连接数据库时,路径中的盘符不能为大写,数据库名称后缀根据创建时定,可没有后缀;
4.2 连接数据库时,sqlite默认没有用户名和密码,与spring集成配置时,用户名和密码输入非空字符,都能连接数据库
4.2 sqlite为本地文件数据库,不能通过远程网络访问,如果访问的程序与数据库不在同一台机器上,有以下几种方式连接:
第一种:数据库文件共享出来供访问,此种方案要考虑安全性
第二种:在数据库服务器上增加附加功能,把数据传给关系型数据库,如mysql
第三种:在数据库服务器上增加额外功能,提供中转服务,搭建外部调用与数据库文件之间的桥梁,如socket连接