zoukankan      html  css  js  c++  java
  • Java操作SQLite数据库Demo

    package gj.database;
    
    import java.sql.*;
    
    /**
     * Author: areful<TR>
     * Date: 2019/5/10
     * <p>
     * gradle dependency:<TR>
     * //https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc<TR>
     * compile group: 'org.xerial', name: 'sqlite-jdbc', version: '3.27.2.1'
     */
    public class SQLiteSample {
        public static void main(String[] args) throws Exception {
            Connection conn = null;
            ResultSet rs = null;
            PreparedStatement prep = null;
            try {
                Class.forName("org.sqlite.JDBC");
                conn = DriverManager.getConnection("jdbc:sqlite:sqlite_sample.db");
                Statement stat = conn.createStatement();
                stat.executeUpdate("drop table if exists people;");
                stat.executeUpdate("create table people (id integer, name, occupation);");
                prep = conn.prepareStatement("insert into people values (?, ?, ?);");
                prep.setInt(1, 1);
                prep.setString(2, "Gandhi");
                prep.setString(3, "politics");
                prep.addBatch();
                prep.setInt(1, 2);
                prep.setString(2, "Turing");
                prep.setString(3, "computers");
                prep.addBatch();
                prep.setInt(1, 3);
                prep.setString(2, "Wittgenstein");
                prep.setString(3, "smartypants");
                prep.addBatch();
                conn.setAutoCommit(false);
                prep.executeBatch();
                conn.setAutoCommit(true);
    
                rs = stat.executeQuery("select * from people;");
                while (rs.next()) {
                    System.out.println("id = " + rs.getInt("id"));
                    System.out.println("name = " + rs.getString("name"));
                    System.out.println("job = " + rs.getString("occupation"));
                }
                //分页时,可以使用ResultSet来完成分页rs.absolute(100),也可以sql语句中完成分页select ... limit 100,10;
                //下面是释放数据库连接的过程,使用数据库连接池时不应该释放连接,而是将连接重新放到连接池中。
                //以代理的方式生成Connection的对象,调用Connection的close方法时将Connection加入到线程池中。线程池中加入的是Connection的代理对象即可。
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (rs != null) {
                    try {
                        rs.close();
                    } finally {
                        if (prep != null) {
                            try {
                                prep.close();
                            } finally {
                                if (conn != null) {
                                    conn.close();
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    

      

     使用SQLiteDatabaseBrowserPortable查看新建的数据库结构:

    附SQLiteDatabaseBrowserPortable下载地址:

    https://sqlitebrowser.org/blog/portableapp-for-3-11-2-release-now-available

  • 相关阅读:
    shell 重启 tomcat 脚本
    shell 复制/备份文件 脚本
    在 CentOS 上安装 node.js
    架构漫谈(一):什么是架构? -王概凯
    冷静审视人工智能技术的本质 | 一图看懂新一代人工智能知识体系大全
    时代在变
    什么是设计思维Design Thinking——风靡全球的创造力培养方法
    金融即服务(FaaS),将开启场景化金融新格局
    devops工具
    京东金融-供应链金融业务介绍
  • 原文地址:https://www.cnblogs.com/areful/p/10842736.html
Copyright © 2011-2022 走看看