Java操作Sqlite数据库
来源:互联网 发布:air mac thea 编辑:程序博客网 时间:2024/05/16 00:41
- 介绍
- 特点
- 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教程
阅读全文
0 0
- Java 操作 SQLite 数据库
- Java操作Sqlite数据库
- java操作嵌入式数据库sqlite
- Java操作Sqlite数据库-jdbc连接
- Java操作sqlite数据库简单示例
- sqlite数据库的介绍及java操作sqlite
- SQLite:Java操作SQLite
- Qt操作SQLite数据库
- sqlite数据库基本操作
- sqlite 数据库的操作
- SQLite数据库的操作
- SQLite数据库操作类
- android sqlite数据库操作
- Fasm操作数据库sqlite
- QT 操作Sqlite数据库
- sqlite数据库查看操作
- SQLite 数据库操作
- SQLite数据库操作
- Redis+TwemProxy(nutcracker)集群方案部署记录
- jQuery学习笔记(四)_ 获取和设置内容或属性
- 浅谈iOS常用的几种传值方式
- spring boot 运行jsp原理分析
- 记录NGUI<二>
- Java操作Sqlite数据库
- 学习之路——命令行菜单小程序V1.0
- java面试题04
- 【Nginx应用】2.在Linux中搭建Nginx
- 九月半集训总结
- detach process in nodejs
- JavaWeb零散笔记总结之-----.myeclipse遇到 source not found解决方案
- TensorFlow损失函数(loss function) 2017-08-14 11:32 125人阅读 评论(0) 收藏 举报 分类: 深度学习及TensorFlow实现(10) 版权声明:
- Java作业1类