美文网首页
Sqlite常用操作

Sqlite常用操作

作者: 清远_03d9 | 来源:发表于2020-07-03 19:14 被阅读0次

1.sqliteutil工具

package com.dist.common.utils;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import java.sql.Statement;

import com.dist.common.log.LoggerProxy;

public class SqliteUtil {
    private final static int REPLACELENGTH = 100;

    private Connection conn = null;
    private Statement stat = null;
    public SqliteUtil(String dbPath) {
        if(conn!=null) {
            return ;
        }
        //Connection conn=null;
        try {
            Class.forName("org.sqlite.JDBC");
            conn=DriverManager.getConnection("jdbc:sqlite:"+dbPath);
            conn.setAutoCommit(false);
            stat = conn.createStatement();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
    
    /***
     * 打开connection连接
     * @throws Exception 
     */
    public Connection getConnection(String dbPath)  {
        if(conn!=null) {
            return conn;
        }
        //Connection conn=null;
        try {
            Class.forName("org.sqlite.JDBC");
            conn=DriverManager.getConnection("jdbc:sqlite:"+dbPath);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;
    }
    
    /***
     * 关闭connection连接
     * @throws Exception 
     */
    public  void closeConnection() {
        try {
        if(conn!=null) {
                stat.close();
                conn.close();
        }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public void commit() {
        if(conn ==null) {
            return ;
        }
        
        try {
            conn.commit();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public void rollBack() {
        if(conn ==null) {
            return ;
        }
        try {
            conn.rollback();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    /***
     * 执行sql语句
     * @throws SQLException 
     * @throws Exception 
     */
    private ResultSet selectDbData(String sql) throws SQLException{
        if(conn ==null) {
            return null;
        }
        PreparedStatement statement = null;
        ResultSet result = null;
        statement = conn.prepareStatement(sql);
        result = statement.executeQuery();
        statement.close();
        return result;
    }
    
    /***
     * 更新sql语句
     * @throws Exception 
     */
    public void updateDbData(String sql) {
        if(conn ==null) {
            return ;
        }
        try {
            stat.executeUpdate(sql);
            conn.commit();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    /***
     * 更新/插入sql语句
     * @throws Exception 
     *  Map<String, Object> param = new HashMap<String, Object>();
     *  map.put("0", "Jeff");
     *  map.put("1", Integer.MAX_VALUE);
     *  map.put("2", Long.MAX_VALUE);
     */
    public void instDbData(String sql,Map<String,Object> param ) throws SQLException {
        if(conn ==null) {
            return ;
        }
        
        if(conn ==null) {
            return ;
        }
        PreparedStatement statement = conn.prepareStatement(sql);
        
        
        param.forEach((key,value) ->{
            try {
            int parameterIndex =0;
            parameterIndex =Integer.parseInt(key);
            if (value instanceof String) {
                    statement.setString(parameterIndex, (String) value);
            } else if (value instanceof Integer) {
                statement.setInt(parameterIndex, (int) value);
            } else if (value instanceof Long) {
                statement.setLong(parameterIndex, (long) value);
            } else if (value instanceof Float) {
                statement.setFloat(parameterIndex, (float) value);
            } else if (value instanceof Double) {
                statement.setDouble(parameterIndex,  (double) value);
            } else if (value instanceof File) {
                FileInputStream fis  = new FileInputStream((File)value);
                statement.setBinaryStream(8,fis,((File)value).length()); 
            }
            
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        });
        
        statement.executeUpdate();
        conn.commit();
        statement.close();
    }

}

2.使用

String targetDbFilName = targetFilePath + File.separator + "zjgg.db";
SqliteUtil sqliteUtil = new SqliteUtil(targetDbFilName);
String sqlStr = "insert into ZJGG_XMJBQK(XMBH  ,  XMMC ,  PZWH ,  PZJG ,  SZSSX  ,  PZSJ ,  XMJHJSSJ,  ZZSSDW ,  ZZZBND )  values(?,?,?,?,?,?,?,?,?)";

Map<String, Object> param = new HashMap<String, Object>();
        param.put("1", xmjbqk.getXmbh() == null ? "" : xmjbqk.getXmbh().toString());
        param.put("2", xmjbqk.getXmmc() == null ? "" : xmjbqk.getXmmc().toString());
        param.put("3", xmjbqk.getPzwh() == null ? "" : xmjbqk.getPzwh().toString());
        param.put("4", xmjbqk.getPzjg() == null ? "" : xmjbqk.getPzjg().toString());
param.put("5", xmjbqk.getSzssx() == null ? "" : xmjbqk.getSzssx().toString());
        param.put("6", xmjbqk.getPzsj() == null ? "" : xmjbqk.getPzsj().toString());
        param.put("7", xmjbqk.getXmjhjssj() == null ? "" : xmjbqk.getXmjhjssj().toString());
        param.put("8", xmjbqk.getZzssdw() == null ? "" : xmjbqk.getZzssdw().toString());
        param.put("9", xmjbqk.getZzzbnd() == null ? "" : xmjbqk.getZzzbnd().toString());
        sqliteUtil.instDbData(sqlStr, param);
        sqliteUtil.closeConnection();

相关文章

  • Sqlite常用操作

    1.sqliteutil工具 2.使用

  • SQLite 常用操作

    创建数据库 创建表 插入数据 查询数据 更新数据 删除数据

  • Android数据库ORM框架:GreenDAO使用简介

    Android最常用的数据库是SQLite,通常使用SQLite进行CRUD操作需要记住一些常用的SQL语句,这不...

  • SQLite&FMDB

    简介 sqlite是开发中常用的一种轻便型数据库, iOS中通常使用FMDB来操作sqlite,FMDB是目前iO...

  • OrmLite数据库使用

    Android中有很多操作SQLite数据库的框架,现在最常见、最常用的是OrmLite和GreenDAO。Orm...

  • Android学习之路-SQLite

    本文只记录如何操作SQLite,对原理先不做探讨 SQLiteDatabase的常用方法 1、打开或者创建数据库创...

  • iOS中数据库使用什么技术实现的

    使用Sqlite和CoreData实现的 常用数据库: 移动开发常用: Sqlite数据库: CoreData是i...

  • Sqlite 使用笔记

    1. 数据库基本操作封装 sqlite 数据操作 语句类型 sqlite 数据库的简单实用- 导入sqlite3数...

  • sqlite命令汇总

    Author:杜七 Date: 2017.02.28 Sqlite数据库sqlite3命令 sqlite3常用命令...

  • SQLite

    SQLite 基础知识 SQLite 列操作 sqlite中不支持删除列的操作,也不能够修改主键。 从上图可见,S...

网友评论

      本文标题:Sqlite常用操作

      本文链接:https://www.haomeiwen.com/subject/sqceqktx.html