运维知识点-Sqlite

Sqlite

  • [引入 依赖](#引入 依赖)

引入 依赖

csharp 复制代码
            <dependency>
                <groupId>org.xerial</groupId>
                <artifactId>sqlite-jdbc</artifactId>
                <version>3.36.0.3</version>
            </dependency>
csharp 复制代码
 

import javafx.scene.control.Alert;
import java.sql.*;

public class DbUtil {

    private static String DB_PATH = "db/database.db";
    private static String sqliteURL="jdbc:sqlite:" + DB_PATH;
    //驱动名称
    private  static  String jdbcNameSqlite = "org.sqlite.JDBC";

    public static  Connection getSqliteCon() throws SQLException {
        try {
            Class.forName(jdbcNameSqlite);
            Connection conn = null;
            conn = DriverManager.getConnection(sqliteURL);
            return conn;
        } catch (Exception e){
        Alert alert = new Alert(Alert.AlertType.INFORMATION);
        alert.setTitle("提示");
        alert.setHeaderText(null);
//        alert.setContentText(ResultMsg.DB_SQLITE_ERROR.getMsg());
        alert.setContentText(String.valueOf(e));
        alert.showAndWait();
        e.printStackTrace();
    }
        return null;
    }

    /**
     * 关闭连接
     *
     * @throws Exception
     */
    public static void close(ResultSet rs, PreparedStatement st, Connection con) throws SQLException {
        if (rs != null) {
            rs.close();
            if (st != null) {
                st.close();
                if (con != null) {
                    con.close();
                }
            }
        }
    }

    //关闭连接和 执行 的打开资源
    public static void close(PreparedStatement st, Connection con) throws SQLException {
        if (st != null) {
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (con != null) {
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
csharp 复制代码
                    // 插入数据
                    String sqlInsert = "INSERT INTO setting (id,set_name,set_value) VALUES (?,?,?)";
                    PreparedStatement pstmt = sqlite_conn.prepareStatement(sqlInsert);


                    try{


                        pstmt.setInt(1,1);
                        pstmt.setString(2,"nuclei_temp");
                        pstmt.setString(3,"");
                        pstmt.addBatch();

                        pstmt.setInt(1,2);
                        pstmt.setString(2,"fingerpath");
                        pstmt.setString(3,"");
                        pstmt.addBatch();

                        pstmt.setInt(1,3);
                        pstmt.setString(2,"eholepath");
                        pstmt.setString(3,"");
                        pstmt.addBatch();

                        pstmt.setInt(1,4);
                        pstmt.setString(2,"nucleiexe");
                        pstmt.setString(3,"");
                        pstmt.addBatch();

//                        pstmt.executeUpdate();
                        // 执行批处理
                        pstmt.executeBatch();

                    }catch (SQLException e){
                        e.printStackTrace();
                    }
csharp 复制代码
                    sqlite_conn.setAutoCommit(false); // 关闭自动提交事务
                    // 更新设置信息到数据库
                    // 更新 nuclei_temp
                    String sqlUpdateNucleiTemp = "REPLACE INTO setting (id, set_name, set_value) VALUES (1, 'nuclei_temp', ?)";
                    PreparedStatement psUpdateNucleiTemp = sqlite_conn.prepareStatement(sqlUpdateNucleiTemp);
                    psUpdateNucleiTemp.setString(1, nuclei_temp);
                    psUpdateNucleiTemp.executeUpdate();

                    // 更新 fingerpath
                    String sqlUpdateFingerPath = "REPLACE INTO setting (id, set_name, set_value) VALUES (2, 'fingerpath', ?)";
                    PreparedStatement psUpdateFingerPath = sqlite_conn.prepareStatement(sqlUpdateFingerPath);
                    psUpdateFingerPath.setString(1, fingerpath);
                    psUpdateFingerPath.executeUpdate();

                    // 更新 eholepath
                    String sqlUpdateEholePath = "REPLACE INTO setting (id, set_name, set_value) VALUES (3, 'eholepath', ?)";
                    PreparedStatement psUpdateEholePath = sqlite_conn.prepareStatement(sqlUpdateEholePath);
                    psUpdateEholePath.setString(1, eholepath);
                    psUpdateEholePath.executeUpdate();

                    // 更新 nucleiexe
                    String sqlUpdateNucleiExe = "REPLACE INTO setting (id, set_name, set_value) VALUES (4, 'nucleiexe', ?)";
                    PreparedStatement psUpdateNucleiExe = sqlite_conn.prepareStatement(sqlUpdateNucleiExe);
                    psUpdateNucleiExe.setString(1, nucleiexe);
                    psUpdateNucleiExe.executeUpdate();

                    // 提交事务
                    sqlite_conn.commit();
相关推荐
Elastic 中国社区官方博客41 分钟前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
互联网推荐官1 小时前
上海软件定制开发全流程拆解:需求分析、技术选型与交付管理的工程实践
大数据·数据库·需求分析
专注API从业者1 小时前
Open Claw 京东商品监控选品实战:一键抓取、实时监控、高效选品
java·服务器·数据库
大迪deblog1 小时前
系统架构师-数据库-数据库设计
数据库·oracle·系统架构
leo__5202 小时前
IEC 104 协议 C 语言实现
c语言·数据库
摇滚侠2 小时前
DBeaver 导入数据库 导入 SQL 文件 MySQL 备份恢复
java·数据库·mysql
若兰幽竹2 小时前
【从零开始编写数据库系统:架构设计与实现】第5章:查询执行引擎与火山模型
数据库·架构·数据库内核·toydb
天空属于哈夫克33 小时前
企业微信API常见的错误和解决方案
java·数据库·企业微信
东风破1373 小时前
DM8达梦数据库备份、恢复原理介绍
数据库·oracle·dm达梦数据库
鹏子训3 小时前
AI记忆新思路:用SQLite替代向量数据库,去EMBEDDINGS化,谷歌开源Google Always On Memory Agent
数据库·人工智能·sqlite·embedding