加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite数据库使用与测试

发布时间:2020-12-12 19:28:40 所属栏目:百科 来源:网络整理
导读: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.Re

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连接

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读