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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM