• 介绍
  • 特点
  • Java操作Sqlite

1.介绍

SQLite是一个进程内的库,实现了自给自足的、无服务器的零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其它数据库不同,不需要在系统中配置。
就像其它数据库,SQLite引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite直接访问其存储文件。

2.特点

  • 不需要一个单独的服务器进程或操作的系统(无服务器的)。
  • SQLite不需要配置,这意味着不需要安装或管理。
  • 一个完整的SQLite数据库是存储在一个单一的跨平台的磁盘文件。
  • SQLite是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。
  • SQLite是自给自足的,这意味着不需要任何外部的依赖。
  • SQLite事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。
  • SQLite支持 SQL92(SQL2)标准的大多数查询语言的功能。
  • SQLite使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
  • SQLite可在UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。

3.Java操作Sqlite

从 sqlite-jdbc 库下载 sqlite-jdbc-(VERSION).jar 的最新版本。或者从maven仓库下载。
在class 路径中添加下载的 jar 文件 sqlite-jdbc-(VERSION).jar

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class SQLiteJDBCUtils {

Connection c;
Statement stmt;

/**
* 连接到一个现有的数据库。如果数据库不存在, 那么它就会被创建,最后将返回一个数据库对象。
*/

@Before
public void before() {
try {
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:C:\\db\\test.db");
System.out.println("Opened database successfully");
stmt = c.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
}

@After
public void after() {
try {
stmt.close();
c.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

@Test
public void createTable() throws SQLException {
String sql = "CREATE TABLE COMPANY "
+ "(ID INT PRIMARY KEY NOT NULL,"
+ " NAME TEXT NOT NULL,"
+ " AGE INT NOT NULL,"
+ " ADDRESS CHAR(50),"
+ " SALARY REAL)";
stmt.executeUpdate(sql);
}

@Test
public void insert() throws SQLException {
c.setAutoCommit(false);
StringBuffer sb = new StringBuffer();
sb.append("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
+ "VALUES (1, 'Paul', 32, 'California', 20000.00 );\n");
sb.append("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
+ "VALUES (2, 'Allen', 25, 'Texas', 15000.00 );\n");
sb.append("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
+ "VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );\n");
sb.append("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
+ "VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );");
stmt.executeUpdate(sb.toString());
c.commit();
}

@Test
public void select() throws SQLException {
ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String address = rs.getString("address");
float salary = rs.getFloat("salary");
System.out.println("ID = " + id);
System.out.println("NAME = " + name);
System.out.println("AGE = " + age);
System.out.println("ADDRESS = " + address);
System.out.println("SALARY = " + salary);
System.out.println("--------");
}
rs.close();
}

@Test
public void update() throws SQLException {
c.setAutoCommit(false);
String sql = "UPDATE COMPANY set SALARY = 25000.00 where ID=1;";
stmt.executeUpdate(sql);
c.commit();

ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String address = rs.getString("address");
float salary = rs.getFloat("salary");
System.out.println("ID = " + id);
System.out.println("NAME = " + name);
System.out.println("AGE = " + age);
System.out.println("ADDRESS = " + address);
System.out.println("SALARY = " + salary);
System.out.println("--------");
}
rs.close();
}

@Test
public void delete() throws SQLException {
c.setAutoCommit(false);
String sql = "DELETE from COMPANY where ID=2;";
stmt.executeUpdate(sql);
c.commit();

ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String address = rs.getString("address");
float salary = rs.getFloat("salary");
System.out.println("ID = " + id);
System.out.println("NAME = " + name);
System.out.println("AGE = " + age);
System.out.println("ADDRESS = " + address);
System.out.println("SALARY = " + salary);
System.out.println("--------");
}
rs.close();
}

}

SQLite数据库语法和MySQL、Oracle等关系型数据库类似,具体使用及操作参考:
SQLite教程

更多相关文章

  1. java入门---数据结构操作实例之获取链表的元素
  2. Hbase1.1.x Java版之批量查删操作
  3. Java连接Oracle数据库简单实例
  4. 在servlet中的init方法得到了对数据库操作的值,怎么传给前端
  5. hbase编程:通过Java api操作hbase
  6. 整理的关于Java对mongodb进行的CURD操作工具类及源码
  7. Memcached提升web数据操作读写性能
  8. 求一段与读取数据库数据,写入一个数组的javascript 代码!谢谢!!
  9. 如何通过Java将Digital Persona的模板保存到数据库中

随机推荐

  1. 松一松身上的"螺丝",可以更舒坦
  2. 25K的996 和 18K的965,你选哪个?
  3. 一文讲透微服务下如何保证事务的一致性
  4. 你的影响力,往往被忽视
  5. 队列(静态方式)
  6. 病毒与故障:漫谈计算机软件的故障应对
  7. 最全的DevOps工具集合,再也不怕选型了!
  8. 如何优雅地运用位运算实现产品需求
  9. 近几年,你也没干出满意的成绩吗?
  10. 如何优雅地停止一个线程?