iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >java 链接 sqlite数据库
  • 868
分享到

java 链接 sqlite数据库

2024-04-02 19:04:59 868人浏览 薄情痞子
摘要

本次采用的sqlite的包是sqlite-jdbc-3.6.0.jarpackage com.***.app.mappcore.impl.util;import java.io.File;import ja

本次采用的sqlite的包是sqlite-jdbc-3.6.0.jar

package com.***.app.mappcore.impl.util;

import java.io.File;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.ygsoft.ecp.app.mappcore.impl.ext.config.BaseConfig;
import com.ygsoft.ecp.service.log.EcpLogFactory;
import com.ygsoft.ecp.service.log.IEcpLog;
import com.ygsoft.ecp.service.tool.StringUtil;

public class SQLiteUtil {
    
    private static final IEcpLog LOG = EcpLogFactory.getLog(SQLiteUtil.class);
    
    public SQLiteUtil(){
        
    }
    
    private static class  LazyHolder {
        private static final SQLiteUtil INSTANCE = new SQLiteUtil();
    }
    
    public static final SQLiteUtil getInstance(){
        return LazyHolder.INSTANCE;
    }

    public static void main(final String[] args) {
        // try {

        // Class.forName("org.sqlite.JDBC");
        // Connection conn =
        // DriverManager.getConnection("jdbc:sqlite:abc.db");
        // 初始化线程池
        // ConnectionPool pool = initPool();
        // // 从连接池中取得链接
        // Connection conn = pool.getCurrentConnecton();
        // Statement stat = conn.createStatement();

        // stat.executeUpdate("create table tbl1(name varchar(20), salary
        // int);");// ?
        // stat.executeUpdate("insert into tbl1 values('ZhangSan',8000);");
        // //
        // stat.executeUpdate("insert into tbl1 values('LiSi',7800);");
        // stat.executeUpdate("insert into tbl1 values('WangWu',5800);");
        // stat.executeUpdate("insert into tbl1 values('我',9100);");

        // ResultSet rs = stat.executeQuery("select * from tbl1;"); //
        // 初始化数据
        SQLiteUtil util = new SQLiteUtil();
        //util.initParametersTable();
        for(int i=0;i<10;i++){
            List<ParametesVO> list =util.findAll(true);
            System.out.println(list.size()+"******************"+i);
        }
//        List<String> sqls =BaseConfig.getSQL();
//        for(String sql: sqls){
//            
//            System.out.println(sql);
//        }
//        String rs = util.findParamValueByName("FTPPUFFERSIZE","FTP");
//        System.out.println(rs);
//        List<ParametesVO> list = util.findAll();
//        System.out.println(list.get(0).getNo());

//        ParametesVO model = new ParametesVO();
//        model.setNo("100");
//        model.setParamName("test1");
//        model.setParamValue("002");
//        model.setParamDescription("描述");
//        model.setParamType("MPF");
//        model.setParamStatus("0");
//        add(model); // 添加
//        String t = findByName("test1");
//        System.out.println("add新添加的记录查询结果是:" + t);
        
//        updateByNO("001",model);
//        String t1 = findByName("FTPPUFFERSIZE");
//        System.out.println("updateByNO修改的记录查询结果是:" + t1);
//        
//        util.delByNO("002");
//        List<ParametesVO> list1 = util.findAll();
//        System.out.println(list1.size());
        // while (rs.next()) { //
        //
        // System.out.print("name = " + rs.getString("name") + " "); //
        //
        // System.out.println("salary = " + rs.getString("salary")); //
        //
        // }
        // rs.close();
        // closeConnection(conn); //

        // } catch (Exception e) {
        // e.printStackTrace();
        // }
    }
    
    public void dropParametersTable(final String tableName){
        String sql =" DROP TABLE PARAMETERS_TABLE ";
        Connection conn=null;
        try {
            // 取得SQL查询结果声明
            conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            // 创建参数表
            stat.executeUpdate(sql);
            stat.close();
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info(" 初始化参数表有误。");
            }
            e.printStackTrace();
        }finally {
            closeConnection(conn);
        }
    }

    
    public void initParametersTable() {
        final String initTableSql = " CREATE TABLE PARAMETERS_TABLE(NO VARCHAR(36), PARAMENAME VARCHAR(36),PARAMEVALUE VARCHAR(36),PARAMESTATUS VARCHAR(4),PARAMETYPE VARCHAR(12),PARAMEDESCRIPTION VARCHAR(2000))";
        Connection conn=null;
        try {
            // 取得SQL查询结果声明
            conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            // 创建参数表
            stat.executeUpdate(initTableSql);
            // 初始化参数表数据    
            List<String> sqls =BaseConfig.getSQL();
            if(sqls!=null){
                for(String sql : sqls){
                    if(StringUtil.isNotEmptyString(sql)){
                        stat.executeUpdate(sql);
                    }
                }
            }
            stat.close();
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info(" 初始化参数表有误。");
            }
            e.printStackTrace();
        }finally {
            closeConnection(conn);
        }
    }
    
    public static String get(final String key,final String type){
        return SQLiteUtil.getInstance().findParamValueByName(key,type);
        
    }

    
    public  String findParamValueByName(final String parameName , final String paramType) {
        String parameValue = null;
        Connection conn=null;
        try {
            // 取得SQL查询结果声明
            conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            ResultSet rs = stat.executeQuery("SELECT * FROM PARAMETERS_TABLE WHERE PARAMENAME='" + parameName + "' AND PARAMETYPE='"+paramType+"'");
            while (rs.next()) { // 取得链接
                parameValue = rs.getString(3);
            }
            rs.close();
            stat.close();
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info("获取查询配置结果有误");
            }
            e.printStackTrace();
        }finally {
            closeConnection(conn);
        }
        return parameValue;
    }
    
    public List<ParametesVO> findByName(final String parameName){
        List<ParametesVO> list = new ArrayList<ParametesVO>();
        Connection conn=null;
        try {
            // 取得SQL查询结果声明
            conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            ResultSet rs = stat.executeQuery("SELECT * FROM PARAMETERS_TABLE WHERE PARAMENAME='" + parameName + "'");
            while (rs.next()) { // 取得链接
                ParametesVO vo = new ParametesVO();
                vo.setNo(rs.getString(1));
                vo.setParamName(rs.getString(2));
                vo.setParamValue(rs.getString(3));
                vo.setParamStatus(rs.getString(4));
                vo.setParamDescription(rs.getString(5));
                list.add(vo);
            }
            rs.close();
            stat.close();
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info("findALL查询配置参数列表有误");
            }
            e.printStackTrace();
        }finally {
            closeConnection(conn);
        }
        return list;
        
    }
    
    public List<ParametesVO> findByParameteType(final String parameType){
        List<ParametesVO> list = new ArrayList<ParametesVO>();
        Connection conn=null;
        try {
            // 取得SQL查询结果声明
            conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            ResultSet rs = stat.executeQuery("select * from PARAMETERS_TABLE WHERE PARAMETYPE='" + parameType + "'");
            while (rs.next()) { // 取得链接
                ParametesVO vo = new ParametesVO();
                vo.setNo(rs.getString(1));
                vo.setParamName(rs.getString(2));
                vo.setParamValue(rs.getString(3));
                vo.setParamStatus(rs.getString(4));
                vo.setParamType(rs.getString(5));
                vo.setParamDescription(rs.getString(6));
                list.add(vo);
            }
            rs.close();
            stat.close();
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info("findALL查询配置参数列表有误");
            }
            e.printStackTrace();
        }finally {
            closeConnection(conn);
        }
        return list;
        
    }

    
    public void updateByNO(final String NO, final ParametesVO model) {
        // 取得SQL查询结果声明
        String update_sql = " UPDATE PARAMETERS_TABLE SET PARAMENAME = '" + model.getParamName() + "',PARAMEVALUE='"
                + model.getParamValue() + "',PARAMESTATUS='" + model.getParamStatus() + "',PARAMETYPE='"
                + model.getParamType() + "',PARAMEDESCRIPTION='" + model.getParamDescription() + "' WHERE NO = '" + NO
                + "'";
        if(LOG.isDebugEnabled()){
            LOG.info("updateByNO de sql:" + update_sql);
        }
        Connection conn = null;
        try {
            conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            stat.executeUpdate(update_sql);
            stat.close();
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info("根据" + NO + "修改PARAMETERS_TABLE对应记录的sql:" + update_sql);
            }
            e.printStackTrace();
        }finally {
            closeConnection(conn);
        }
    }

    
    public void add(final ParametesVO model) {
        Connection conn=null;
        try {
            conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            String add_sql = " INSERT INTO PARAMETERS_TABLE VALUES('" + model.getNo() + "','" + model.getParamName()
                    + "','" + model.getParamValue() + "','" + model.getParamStatus() + "','" + model.getParamType()
                    + "','" + model.getParamDescription() + "')";
            stat.executeUpdate(add_sql);
            if(LOG.isDebugEnabled()){
                LOG.info("添加配置信息的sql:" + add_sql);
            }
            stat.close();
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info("添加时");
            }
            e.printStackTrace();
        }finally {
            closeConnection(conn);
        }
    }
    
    
    public ParametesVO findByNO(final String NO){
        ParametesVO vo=null;
        Connection conn=null;
        try {
            // 取得SQL查询结果声明
            conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            ResultSet rs = stat.executeQuery(" SELECT * FROM PARAMETERS_TABLE WHERE NO = '" + NO + "'");
            while (rs.next()) { // 取得链接
                vo = new ParametesVO();
                vo.setNo(rs.getString(1));
                vo.setParamName(rs.getString(2));
                vo.setParamValue(rs.getString(3));
                vo.setParamStatus(rs.getString(4));
                vo.setParamType(rs.getString(5));
                vo.setParamDescription(rs.getString(6));
            }
            rs.close();
            stat.close();
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info("findALL查询配置参数列表有误");
            }
            e.printStackTrace();
        }finally {
            closeConnection(conn);
        }
        return vo;
    }

    
    public void delByNO(final String no) {
        Connection conn=null;
        try {
            conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            stat.executeUpdate("DELETE FROM PARAMETERS_TABLE WHERE NO = '" + no + "'");
            stat.close();
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info("删除失败,NO:" + no);
            }
            e.printStackTrace();
        }finally {
            closeConnection(conn);
        }
    }
    
    
    public void updateByNameAndType(final String paramname,final String paramtype, final ParametesVO model) {
        // 取得SQL查询结果声明
        String update_sql = " UPDATE PARAMETERS_TABLE SET PARAMENAME = '" + model.getParamName() + "',PARAMEVALUE='"
                + model.getParamValue() + "',PARAMESTATUS='" + model.getParamStatus() + "',PARAMETYPE='"
                + model.getParamType() + "',PARAMEDESCRIPTION='" + model.getParamDescription() + "' WHERE PARAMENAME = '" + paramname
                + "' and PARAMETYPE='" +paramtype + "'";
        if(LOG.isDebugEnabled()){
            LOG.info("updateByNameAndType de sql:" + update_sql);
        }
        try {
            Connection conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            stat.executeUpdate(update_sql);
            closeConnection(conn);
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info("根据" + paramname+" 和 "+paramtype+ "修改PARAMETERS_TABLE对应记录的sql:" + update_sql);
            }
            e.printStackTrace();
        }
    }
    
    
    public ParametesVO findByNameAndType(final String paramname,final String paramtype){
        ParametesVO vo=null;
        Connection conn =null;
        try {
            // 取得SQL查询结果声明
            conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            ResultSet rs = stat.executeQuery(" SELECT * FROM PARAMETERS_TABLE WHERE PARAMENAME = '" + paramname + "' and PARAMETYPE='" + paramtype + "'");
            while (rs.next()) { // 取得链接
                vo = new ParametesVO();
                vo.setNo(rs.getString(1));
                vo.setParamName(rs.getString(2));
                vo.setParamValue(rs.getString(3));
                vo.setParamStatus(rs.getString(4));
                vo.setParamType(rs.getString(5));
                vo.setParamDescription(rs.getString(6));
            }
            rs.close();
            stat.close();
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info("findByNameAndType查询配置参数列表有误");
            }
            e.printStackTrace();
        }finally {
            closeConnection(conn);
        }
        return vo;
    }
    
    private boolean isDbexists(){
        if(LOG.isDebugEnabled()){
            LOG.info("开始校验数据库文件是否存在");
        }
        File f = new File(BaseConfig.get("JdbcUrl"));
        if (f.exists()) {
            if(LOG.isDebugEnabled()){
                LOG.info("数据库文件存在于"+BaseConfig.get("JdbcUrl"));
            }
            return true;
        }
        return false;
    }
    
    private void findBefor(){
        if(!isDbexists()){ // 不存在
            if(LOG.isDebugEnabled()){
                LOG.info("由于数据库文件不存在,故初始化");
            }
            initParametersTable();
        }
    }

    
    public List<ParametesVO> findAll(final boolean isCheckDB) {
        if(isCheckDB){            
            findBefor();
        }
        List<ParametesVO> list = new ArrayList<ParametesVO>();
        Connection conn=null;
        try {
            // 取得SQL查询结果声明
            conn = getCurrentConnecton();
            Statement stat = conn.createStatement();
            ResultSet rs = stat.executeQuery("SELECT * FROM PARAMETERS_TABLE");
            while (rs.next()) { // 取得链接
                ParametesVO vo = new ParametesVO();
                vo.setNo(rs.getString(1));
                vo.setParamName(rs.getString(2));
                vo.setParamValue(rs.getString(3));
                vo.setParamStatus(rs.getString(4));
                vo.setParamType(rs.getString(5));
                vo.setParamDescription(rs.getString(6));
                list.add(vo);
            }
            rs.close();
            stat.close();
        } catch (SQLException e) {
            if(LOG.isDebugEnabled()){
                LOG.info("findALL查询配置参数列表有误");
            }
            e.printStackTrace();
        }finally {
            closeConnection(conn);
        }
        return list;

    }

    
    private static Connection getCurrentConnecton() {
        // 初始化连接池
        ConnectionPool pool = getPool();
        // 取得当前链接
        Connection conn = pool.getCurrentConnecton();
        if (conn != null) {
            return conn;
        }
        return null;
    }

    
    public static ConnectionPool getPool() {
        return ConnectionPoolManager.getInstance().getPool("sqllitePool");
    }
    
    public static void closeConnection(final Connection conn){
        ConnectionPoolManager.getInstance().closeConnection("sqllitePool", conn);
    }
    
    public static void destroyPool(){
        ConnectionPoolManager.getInstance().destroy("sqllitePool");
    }

}


注:本类涉及到的一些数据库链接池的问题或类可参考作者的相关文章

您可能感兴趣的文档:

--结束END--

本文标题: java 链接 sqlite数据库

本文链接: https://www.lsjlt.com/news/39651.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java如何连接sqlite数据库
    要连接SQLite数据库,可以使用Java的JDBC(Java数据库连接)API。以下是使用JDBC连接SQLite数据库的步骤: ...
    99+
    2024-04-18
    java sqlite
  • python链接sqlite数据库的详细代码实例
    一、创建数据库 创建sqlite数据库的代码 import sqlite3 conn = sqlite3.connect("test.db") print("成功创建数据库") ...
    99+
    2024-04-02
  • Rust如何连接SQLite数据库
    这篇文章主要介绍Rust如何连接SQLite数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用 Rust 语言连接操作 SQLite 数据库,我使用 rusqlite 这个 crate。看例子:首先,使用 ca...
    99+
    2023-06-28
  • java如何给链接数据库加密
    在java中使用DES算法对数据库进行加密,具体方法如下:import java.security.Key;import java.security.SecureRandom;import javax.crypto.Cipher;impor...
    99+
    2024-04-02
  • PyQt4中怎么连接sqlite数据库
    本篇文章给大家分享的是有关PyQt4中怎么连接sqlite数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。SQLite,是一款轻型的数据库...
    99+
    2024-04-02
  • Unity链接MySql数据库
    一、连接准备 1. MySql.Data插件 Visual Studio中下载打开Visual Studio_项目_管理NuGet程序包在浏览中搜索MySql.Data并下载 2.MySql官网下载插...
    99+
    2023-09-04
    unity 数据库 mysql
  • Android studio 连接SQLite数据库 +创建数据库+创建数据库表
    Android studio 之数据库的使用 连接创建SQLite 大家好,欢迎来到寒依。 相信看啦我的教程 当老师问你在学习Android studio 数据库使用过程中遇到什么困难,分享一下你的感...
    99+
    2023-10-01
    android studio intellij-idea 数据库开发 sqlite java
  • java中怎么创建sqlite数据库
    在Java中创建SQLite数据库需要使用SQLite JDBC驱动程序。下面是创建SQLite数据库的步骤: 1、下载并导入SQL...
    99+
    2024-04-10
    sqlite java
  • sqlite数据库连接池如何使用
    SQLite数据库是一种轻量级的数据库,不支持连接池。每个连接都是一个独立的数据库文件,因此在SQLite中并不需要使用连接池。 如...
    99+
    2024-04-09
    sqlite
  • python如何链接数据库
    小编给大家分享一下python如何链接数据库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQLdb模块是为Python提供...
    99+
    2024-04-02
  • python数据库如何连接SQLite详解
    目录1.建立与SQLite数据库的连接1.1建立基于内存的数据库1.2建立基于硬盘的数据库1.3基于内存和基于硬盘的区别2.在指定数据库里建立表结构2.1建立数据库表结构2.2查找数...
    99+
    2024-04-02
  • sqlite数据库连接池怎么配置
    在SQLite中,由于它是一个嵌入式数据库,通常不需要使用连接池来管理数据库连接。每个数据库连接都是一个文件,可以直接在应用程序中打...
    99+
    2024-04-09
    sqlite
  • Rust连接SQLite数据库的过程解析
    使用 Rust 语言连接操作 SQLite 数据库,我使用 rusqlite 这个 crate。 看例子: 首先,使用 cargo 创建一个 Rust 项目,然后添加依赖 rusql...
    99+
    2024-04-02
  • jsp如何链接mysql数据库
    这篇文章将为大家详细讲解有关jsp如何链接mysql数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jsp连接mysql的方法:首先在mysql官网下载JDBC驱动程...
    99+
    2024-04-02
  • MySQL数据库----------安装anaconda---------python与数据库的链接
    作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​...
    99+
    2023-08-31
    数据库 mysql python
  • Android项目如何实现连接SQLite数据库
    这篇文章给大家介绍Android项目如何实现连接SQLite数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。新建一个Android工程: 在Src文件夹下新建一个包com.example.database...
    99+
    2023-05-31
    android sqlite lite
  • 使用SqlSugar连接多个数据库(sqlserver,sqlite,mysql)
        有时候,一个项目只有一个数据库,比如只有SQLite,或者MySQL数据库,那么我们只需要使用一个固定的数据库即可。但是一个项目如果写好了,有多个用户使用,但是多个用户使用不同的数据库,这个时候,我们就需要把软件设计成可以连接多个数...
    99+
    2023-09-02
    数据库
  • sqlite数据库如何修改数据
    要修改SQLite数据库中的数据,可以使用UPDATE语句。以下是一个示例: UPDATE table_name SET colum...
    99+
    2024-04-10
    sqlite
  • NodeJS中怎么链接MySql数据库
    今天就跟大家聊聊有关NodeJS中怎么链接MySql数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如下所示://1.用npm命令安装mysql...
    99+
    2024-04-02
  • thinkphp链接国产链连接达梦数据库类方法
    🌼 针对thinkphp框架的用户来说,使用达梦数据库驱动类可以更加方便地操作数据库,也能够更好地提升应用程序的性能和稳定性。同时,达梦数据库驱动类也提供了一些特有的功能,如支持Unicode字符集、支持大型数据表操作等。 安装达梦数据库管...
    99+
    2023-09-06
    数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作