首页 > 数据库 >嵌入式数据库 sqllite & h2  utils

嵌入式数据库 sqllite & h2  utils

时间:2022-12-15 16:59:39浏览次数:49  
标签:rs h2 utils List connection static statement sql sqllite

使用场景:

   简单脚本,但是有需要数据记录. (使用前升级下版本)

          我的使用: 老机器,老项目,jkd6,  需要记录

 

SqlLiteUtils

package com.icil.edi.listener;


import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/***************************
 *<pre>
 * @Project Name : edi-kafka-service
 * @Package      : com.icil.edi.listener
 * @File Name    : SqlLiteUtils
 * @Author       :  Sea
 * @Date         : 12/14/22 3:53 PM
 * @Purpose      :
 * @History      :
 *</pre>
 * <!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
 *         <dependency>
 *             <groupId>org.xerial</groupId>
 *             <artifactId>sqlite-jdbc</artifactId>
 *             <version>3.21.0</version>
 *         </dependency>
 ***************************/
public class SqlLiteUtils {

    static Connection connection = null;

    public static Connection getConnection() throws Exception {
        if(connection==null||connection.isValid(15)){
            synchronized (SqlLiteUtils.class){
                if(connection==null||connection.isValid(15)){
                Class.forName("org.sqlite.JDBC");
                connection = DriverManager.getConnection("jdbc:sqlite:FileCopy.db");
//                connection = DriverManager.getConnection("jdbc:sqlite:/home/sealiu/FileCopy.db");
                connection.setAutoCommit(true);}
            }
        }
        return connection;
    }


    /**
     * insert update delete
     * table  tb_file_name :  id  fileName   createTs
     * @param sql
     * @throws Exception
     */
    public static  void doUpdate(String sql){
        try
        {
            Connection connection = getConnection();
            Statement statement = connection.createStatement();
//            statement.executeUpdate("CREATE TABLE IF NOT EXISTS tb_file_name (createTs integer, name string)");
//            statement.executeUpdate("insert into tb_file_name values(System.currentTimeMillis(), 'Sea')");
            statement.executeUpdate(sql);
        }catch (Exception e)
        {
            e.printStackTrace();
            System.err.println("exec sql "+ sql + "exp and exception: " + e);
        }

    }

    public static List<Map> doQuery(String sql){
        try
        {
            Connection connection = getConnection();
            Statement statement = connection.createStatement();
            statement.setQueryTimeout(30);  // set timeout to 30 sec.
//          ResultSet rs = statement.executeQuery("select * from person");
            ResultSet rs = statement.executeQuery(sql);
            List<Map> maps = convertList(rs);
            return maps;
        }catch (Exception e)
        {
            e.printStackTrace();
            System.err.println("exec sql "+ sql + "exp and exception: " + e);
        }
        return null;
    }

    // 将查询结果resultset转换为List<Map>
    private static List<Map> convertList(ResultSet rs) throws SQLException{
        List<Map> list = new ArrayList<Map>();
        ResultSetMetaData md = rs.getMetaData();//获取键名
        int columnCount = md.getColumnCount();//获取列的数量
        while (rs.next()) {
            Map<String,Object> rowData = new HashMap<String,Object>();//声明Map
            for (int i = 1; i <= columnCount; i++) {
                rowData.put(md.getColumnName(i), rs.getObject(i));//获取键名及值
            }
            list.add(rowData);
        }
        return list;
    }

//    @Test
    public static void main(String[] args) throws Exception
    {

//      String schema= "CREATE TABLE IF NOT EXISTS tb_file_name (createTs Long, name string ,primary key(name))";
      String schema= "CREATE TABLE IF NOT EXISTS tb_file_name (createTs Long, name string )";
      String insertSql= "insert into tb_file_name values(3, 'Sea')";
      String query= "select * from tb_file_name where createTs>2";
      String delete= "DELETE FROM tb_file_name WHERE createTs=2 ";

      doUpdate(schema);
      doUpdate(insertSql);
//      doUpdate(delete);
      List<Map> maps = doQuery(query);
      System.err.println(maps);
    }

}

 

H2DbUtils:

package com.icil.edi.listener;

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/***************************
 *<pre>
 * @Project Name : edi-kafka-service
 * @Package      : com.sea.edi.listener
 * @File Name    : H2DBUtils
 * @Author       :  Sea
 * @Date         : 12/15/22 3:31 PM
 * @Purpose      :
 * @History      :
 *         <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
 *         <dependency>
 *             <groupId>com.h2database</groupId>
 *             <artifactId>h2</artifactId>
 *             <version>1.4.187</version>
 *         </dependency>
 *</pre>
 ***************************/
public class H2DBUtil {

    static Connection connection = null;
    public static Connection getConnection() throws Exception {
        if(connection==null||connection.isValid(15)){
            synchronized (SqlLiteUtils.class){
                if(connection==null||connection.isValid(15)){
                    // 加载H2数据库驱动
                    Class.forName("org.h2.Driver");
                    final String USER = "root";
                    String PASSWORD = "root";
                    final String JDBC_URL = "jdbc:h2:/home/sea/Desktop/DMS/db/as";
                    // 根据连接URL,用户名,密码获取数据库连接
                    connection = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);
                    connection.setAutoCommit(true);}
            }
        }
        return connection;
    }


    /**
     * insert update delete
     * @param sql
     * @throws Exception
     */
    public static  void doUpdate(String sql){
        try
        {
            Connection connection = getConnection();
            Statement statement = connection.createStatement();
            statement.executeUpdate(sql);
        }catch (Exception e)
        {
            e.printStackTrace();
            System.err.println("exec sql "+ sql + "exp and exception: " + e);
        }

    }


    public static List<Map> doQuery(String sql){
        try
        {
            Connection connection = getConnection();
            Statement statement = connection.createStatement();
            statement.setQueryTimeout(30);  // set timeout to 30 sec.
//          ResultSet rs = statement.executeQuery("select * from person");
            ResultSet rs = statement.executeQuery(sql);
            List<Map> maps = convertList(rs);
            return maps;
        }catch (Exception e)
        {
            e.printStackTrace();
            System.err.println("exec sql "+ sql + "exp and exception: " + e);
        }
        return null;
    }

    // 将查询结果resultset转换为List<Map>
    private static List<Map> convertList(ResultSet rs) throws SQLException{
        List<Map> list = new ArrayList<Map>();
        ResultSetMetaData md = rs.getMetaData();//获取键名
        int columnCount = md.getColumnCount();//获取列的数量
        while (rs.next()) {
            Map<String,Object> rowData = new HashMap<String,Object>();//声明Map
            for (int i = 1; i <= columnCount; i++) {
                rowData.put((""+md.getColumnName(i)).toLowerCase(), rs.getObject(i));//获取键名及值
            }
            list.add(rowData);
        }
        return list;
    }



    //    @Test
    public static void main(String[] args) throws Exception
    {
//      String schema="CREATE TABLE  IF NOT EXISTS tb_file_name(name VARCHAR(70) PRIMARY KEY,name VARCHAR(100),sex VARCHAR(4))";
       String schema="CREATE TABLE  IF NOT EXISTS tb_file_name(name VARCHAR(70),cts BIGINT,times INT)";
        String insertSql= "insert into tb_file_name values('Sea',312421412,3)";
        String query= "select * from tb_file_name";
        String delete= "DELETE FROM tb_file_name WHERE times=2 ";

        doUpdate(schema);
        doUpdate(insertSql);
       doUpdate(delete);
        List<Map> maps = doQuery(query);
        System.err.println(maps);
    }

}

 

标签:rs,h2,utils,List,connection,static,statement,sql,sqllite
From: https://www.cnblogs.com/lshan/p/16985443.html

相关文章

  • DBUtils
    JDBCUtils,使用DBUtilspackagecom.javasm.util;importcom.javasm.constants.JDBCConstants;importorg.apache.commons.dbutils.DbUtils;importorg.apache.common......
  • 浅析BeanUtils中copyProperties原理
    摘要本文浅析BeanUtils中copyProperties的原理。简述大致实现流程源码浅析org.springframework.beans.BeanUtils/***将给定源bean的属性值赋值到目标bean中。*......
  • django.db.utils.DataError: (1406, "Data too long for column 'password' at row 1"
    问题: pythonmanage.pycreatesuperuser 无法创建超级用户报错:django.db.utils.DataError:(1406,"Datatoolongforcolumn'password'atrow1")问题原因:用户模......
  • 数据库连接池+jdbc框架commons-dbutils 学习笔记
    嗯,看到一个javaweb项目用到这些知识,就准备整理,嗯,我并没有敲代码。加油生活。愿我自己。                          ......
  • python 3.10 报错 _internal.utils.misc import get_installed_distributions
    python3.10版本后不能导入frompip._internal.utils.miscimportget_installed_distributions可以使用importpkg_resources   用pkg_resources.working_set:......
  • 008.封装Md5Utils加密工具类
    1.MD5介绍    2.使用CommonsCodec2.1 pom.xml<!--Apache加密/解密组件--><dependency><groupId>commons-codec</groupId><artifac......
  • 006.封装ResponseUtils工具类
    1.封装ResponseUtils(对标准的Code、Message进行设置)packagecom.imooc.oa.utils;importcom.fasterxml.jackson.annotation.JsonInclude;importcom.fasterxml.jackson.co......
  • Oauth2.0 协议详解(-)
    Oauth2.0(一):为什么需要Oauth2.0协议?假设有两家互联网企业A和B,其中B是一家提供相片云存储的公司。即B的用户可以把相片上传到B网站上长期保存,然后可以在不同的......
  • Spring Cloud OAuth2 + JWT
    1.微服务架构下统⼀认证思路基于Session的认证⽅式在分布式的环境下,基于session的认证会出现⼀个问题,每个应⽤服务都需要在session中存储⽤户身份信息,通过负载均衡将本地......
  • WebUtils工具类解析
    WebUtils根据名称,知道是Spring当中一个工具类,主要用于Web应用程序,供各种框架使用。其中有些方法还是挺有用的,比如可以获取Session中的会话属性,获取Cookies,设置Session中的会......