Java操作SQLite数据库

简介: Java操作SQLite数据库

sqlite-jdbc 仓库地址:

https://bitbucket.org/xerial/sqlite-jdbc

sqlite-jdbc.jar

1、下载地址

https://bitbucket.org/xerial/sqlite-jdbc/downloads/

2、示例代码

package com.mouday;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class App 
{
    public static void main( String[] args ) throws ClassNotFoundException, SQLException {
        Class.forName("org.sqlite.JDBC");
        Connection connection = DriverManager.getConnection("jdbc:sqlite:test.db");
        System.out.println( "Hello World!" );
    }
}

3、运行测试

javac com.mouday.App
# Mac or Linux
java  -classpath ".:sqlite-jdbc-3.7.2.jar" com.mouday.App
# Windows
java  -classpath ".;sqlite-jdbc-3.7.2.jar" com.mouday.App

使用Maven

依赖

<dependencies>
    <dependency>
      <groupId>org.xerial</groupId>
      <artifactId>sqlite-jdbc</artifactId>
      <version>3.7.2</version>
    </dependency>
</dependencies>

SQLite的存储类

  1. NULL
  2. INTEGER 带符号的整数
  3. REAL 浮点值
  4. TEXT 文本字符串
  5. BLOB

定义数据结构

package com.mouday;
public class Person {
    private int id;
    private String name;
    public Person(int id, String name) {
        this.id = id;
        this.name = name;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

CURD

package com.mouday;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class App {
    public static void main(String[] args) throws ClassNotFoundException {
        // 加载驱动
        Class.forName("org.sqlite.JDBC");
        Connection connection = null;
        try {
            // 获取连接
            connection = DriverManager.getConnection("jdbc:sqlite:test.db");
            Statement statement = connection.createStatement();
            // 建表
            statement.executeUpdate("drop table if exists person");
            statement.executeUpdate("create table person (id integer , name text)");
            // 插入数据
            statement.executeUpdate("insert into person(id, name) values(1, '刘备')");
            statement.executeUpdate("insert into person(id, name) values(2, '关羽')");
            statement.executeUpdate("insert into person(id, name) values(3, '张飞')");
            // 更新数据
            statement.executeUpdate("update person set name='诸葛亮' where id = 2");
            // 删除数据
            statement.executeUpdate("delete from person where id = 3");
            // 批处理
            String  sql = "insert into person(id, name) values(?, ?)";
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            List<Person> list = new ArrayList<>();
            list.add(new Person(4, "Tom"));
            list.add(new Person(5, "曹操"));
            list.add(new Person(6, "刘备"));
            for(Person person: list){
                preparedStatement.setInt(1, person.getId());
                preparedStatement.setString(2, person.getName());
                preparedStatement.addBatch();
            }
            preparedStatement.executeBatch();
            preparedStatement.close();
            // 查询数据
            ResultSet resultSet = statement.executeQuery("select * from person");
            while (resultSet.next()){
                System.out.println(resultSet.getInt("id"));
                System.out.println(resultSet.getString("name"));
            }
            statement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try{
                if( connection != null){
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
相关文章
|
11天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
80 15
|
1月前
|
SQL 存储 Java
面向 Java 程序员的 SQLite 替代品
SQLite 是轻量级数据库,适用于小微型应用,但其对外部数据源支持较弱、无存储过程等问题影响了开发效率。esProc SPL 是一个纯 Java 开发的免费开源工具,支持标准 JDBC 接口,提供丰富的数据源访问、强大的流程控制和高效的数据处理能力,尤其适合 Java 和安卓开发。SPL 代码简洁易懂,支持热切换,可大幅提高开发效率。
|
1月前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
43 8
|
2月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
42 4
|
2月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
70 3
|
2月前
|
应用服务中间件 PHP Apache
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
|
3月前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
|
3月前
|
数据库 数据库管理
qt对sqlite数据库多线程的操作
本文总结了在Qt中进行SQLite数据库多线程操作时应注意的四个关键问题,包括数据库驱动加载、加锁、数据库的打开与关闭,以及QsqlQuery变量的使用。
218 1
|
2月前
|
存储 缓存 关系型数据库
sqlite 数据库 介绍
sqlite 数据库 介绍
49 0
|
4月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
602 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
下一篇
DataWorks