运维知识点-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();
相关推荐
ClouGence7 分钟前
CloudDM 支持达梦、KingbaseES、GoldenDB,国产数据库也能统一管起来
数据库·sql·开源
举个栗子。32 分钟前
DBX:20MB 驾驭 90+ 种数据库的极简开源数据库管理器
数据库·开源
逃逸线LOF34 分钟前
SpringMVC拦截器 & 异常处理机制
数据库·mysql
科技小登1 小时前
重大活动安全保障方案怎么选?重保服务、攻防演练、应急响应与安全意识培训实战与边界
数据库·人工智能·安全
番茄你个西红41 小时前
金仓KFS同步工具常见问题解决方法
数据库
CarIise1 小时前
JDBC数据库操作与SQL注入防范
数据库·sql
CCYe、1 小时前
新模型上线、旧模型下线:企业AI网关如何管住模型版本
java·网络·数据库·人工智能
疯狂打码的少年2 小时前
【数据库技术】SQL嵌套查询(IN/EXISTS/ANY/ALL)
数据库·笔记·sql
Mr. zhihao2 小时前
JVM 偏向锁 4 秒延迟:从源码动机到 JEP-374 废弃全链路
jvm·并发·偏向锁
清晨0012 小时前
国产化数据库替代方案:openGauss 详解与 MySQL 平滑迁移实战
数据库·mysql