zoukankan      html  css  js  c++  java
  • SQLite初识

    基础文档参考菜鸟教程:https://www.runoob.com/sqlite/sqlite-tutorial.html

    数据库操作:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    
    public class SqliteHelper {
    
        final static Logger logger = LoggerFactory.getLogger(SqliteHelper.class);
    
        final static String dbFilePath="jdbc:sqlite:Mq.db";//数据库链接名称
        private static SqliteHelper instance;
    
    
        private  SqliteHelper(){}
    
        public static SqliteHelper getInstance() {
            if (instance == null) {
                instance = new SqliteHelper();
            }
            return instance;
        }
    
    
        /**
         * 插入/更新/删除(执行sql)
         * @param sql
         * @return
         * @throws SQLException
         * @throws ClassNotFoundException
         */
        public void executeUpdate(String sql) throws Exception{
            Class.forName("org.sqlite.JDBC");
            Connection connection=DriverManager.getConnection(dbFilePath);
            Statement statement=connection.createStatement();
            try {
                statement.executeUpdate(sql);
            }catch (Exception e){
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                destroyed(null,statement,connection);
            }
        }
    
        /**
         * 查询
         * @param sql
         * @param rm
         * @param <T>
         * @return
         * @throws SQLException
         * @throws ClassNotFoundException
         */
        public <T> List<T> executeQuery(String sql, RowMapper<T> rm) throws Exception{
            Class.forName("org.sqlite.JDBC");
            Connection connection=DriverManager.getConnection(dbFilePath);
            Statement statement=connection.createStatement();
            ResultSet resultSet=null;
            List<T> rsList = new ArrayList<T>();
            try {
                resultSet = statement.executeQuery(sql);
                while (resultSet.next()) {
                    rsList.add(rm.mapRow(resultSet, resultSet.getRow()));
                }
            }catch (Exception e){
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                destroyed(resultSet,statement,connection);
            }
            return rsList;
        }
    
        /**
         * 数据库资源关闭和释放
         */
        public void destroyed(ResultSet resultSet,Statement statement,Connection connection) {
            try {
                if (null != resultSet) {
                    resultSet.close();
                }
                if (null != statement) {
                    statement.close();
                }
                if (null != connection) {
                    connection.close();
                }
            } catch (SQLException e) {
                logger.error("Sqlite数据库关闭时异常", e);
            }
        }
    
    }
    import lombok.extern.slf4j.Slf4j;import java.sql.*;
    import java.util.List;
    
    @Slf4j
    public class SqliteTest {
    
        final static String table= "CREATE TABLE Test " +
                "(ID INTEGER PRIMARY KEY AUTOINCREMENT    NOT NULL," +
                " NAME           TEXT    NOT NULL, " +
                " AGE            INT     NOT NULL, " +
                " ADDRESS        CHAR(50), " +
                " SALARY         REAL)";
        final static String Test1= "INSERT INTO Test (ID,NAME,AGE,ADDRESS,SALARY) " +
                "VALUES (1, 'Allen', 25, 'Texas', 15000.00 );";
        final static String Test2= "INSERT INTO Test (ID,NAME,AGE,ADDRESS,SALARY) " +
                "VALUES (2, 'Teddy', 23, 'Norway', 20000.00 );";
        final static String Test_select= "SELECT * FROM InvokeCmd8004;";
    
        /**
         * 测试
         * @throws ClassNotFoundException
         * @throws SQLException
         */
        public static void TestSq(){
            try {
                String sql = Test_select;
                //sqliteHelper.executeUpdate(sql);
                List<String> sList =SqliteHelper.getInstance().executeQuery(sql,new RowMapper<String>() {
                    @Override
                    public String mapRow(ResultSet rs, int index)
                            throws SQLException {
                        String aa=rs.getString("ID");
                        //System.out.println(aa);
                        return rs.getString("ID");
                    }
                });
                log.warn(sList.get(0));
            }catch (Exception e){
                e.printStackTrace();
            }
        }

      public static void main(String[] args){ TestSq(); } }

    可视化工具:sqlitebrowser.exe


    其他功能性SQL:

    [root@localhost /]# ALTER TABLE UserInfo ADD `disable_status` INTEGER  //表中添加字段
  • 相关阅读:
    Object之克隆对象clone 和__clone()函数
    Object之魔术函数__toString() 直接输出对象引用时自动调用
    Object之魔术函数__call() 处理错误调用
    Git关联远程GitHub仓库
    python制作查找单词翻译的脚本
    用python处理文本,本地文件系统以及使用数据库的知识基础
    基于序列化技术(Protobuf)的socket文件传输
    Python核心编程——Chapter16
    gdb初步窥探
    unp学习笔记——Chapter1
  • 原文地址:https://www.cnblogs.com/LJing21/p/14768386.html
Copyright © 2011-2022 走看看