簡體   English   中英

從Java中的SQLIte數據庫檢索特定數據

[英]Retrieve specific data from SQLIte database in Java

我有一個300GB的sqlite數據庫,其中包含數十億條記錄。 它存儲在本地計算機上。

我想在sqlite數據庫中搜索數據,如果找到該行,則返回該行。 我想根據csv文件中的值從此sqlite數據庫中檢索數據。

    String csvfile = "C:/documents/parsed - Copy.csv";
    String line = "";
    String csvSplitBy = ",";
    BufferedReader br = new BufferedReader(new FileReader(csvfile));

    String sql = "select substr(hex(column1),5,12),column2,colum3 from table1 where substr(hex(column1),5,12) = ?";
    try (Connection conn = this.connect();
            PreparedStatement stmt = conn.prepareStatement(sql)){
        while ((line = br.readLine()) != null) {
            String[] cols = line.split(csvSplitBy);
            stmt.setString(1, cols[1]);
            ResultSet rs = stmt.executeQuery()
            if (rs.next()) {
                System.out.println("found");}
            else
               System.out.println("not found");

如何根據單獨的較小csv文件中的值搜索數據庫,而不是花很長時間?

如果不是一次操作,則可以選擇向table1再添加一列,例如column1_1

alter table table1 add column column1_1;

然后使用值substr(hex(column1),5,12)填充column1_1

update table1 set column1_1 = substr(hex(column1),5,12);

然后將您的查詢sql更改為:

String sql = "select column1_1,column2,colum3 from table1 where column1_1 = ?";

這樣您的查找將更快

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM