java調用sqlite太鬱悶的簡單介紹

本文目錄一覽:

如何在java中使用sqlite

以下通過對一個數據表的操作,介紹如何用這幾個類進行數據庫操作:數據庫操作類:HelloSqlite2.java:初始化一個Database對象:Database db = new Database();Database類是主要功能類,通過db對象可以實現對數據庫的操作: 1、 連接數據庫:public int connectDB(String dbPath){ try{ db.open(dbPath,0666);//調用open方法連接數據庫,如果不存在創建這個數據庫文件 return 1; } catch(java.lang.Exception ex) { ex.printStackTrace(); return -1; }} 2、創建數據表 //創建數據庫字符串 static final String strCreate = “create table [User] ([UserID] integer primary key,[UserName] text,”+ “[Password] text,[BeDeleted] integer);”;public int createTable(){ try { db.exec(strCreate,null);//執行一個sql命令,由於不需要處理返回值, //所以callback可以直接為null return 1; } catch(java.lang.Exception ex) { ex.printStackTrace(); return -1; }} 3、修改數據表3.1、增加記錄static final String strInsert1 = “INSERT INTO [USER] ([username],[password],[bedeleted])VALUES(‘sacramento’,’123456′,’1′);”; public int insert(){ try { db.exec(strInsert1,null);//執行一個sql命令,由於不需要處理返回值, //所以callback可以直接為null return 1; } catch(java.lang.Exception ex) { ex.printStackTrace(); return -1; }}3.2、修改記錄static final String strUpdate = “update [user] set [username] = ‘Boston’ where [userid] = 1;”; public int update(){ try { db.exec(strUpdate,null);//執行一個sql命令,由於不需要處理返回值, //所以callback可以直接為null return 1; } catch(java.lang.Exception ex) { ex.printStackTrace(); return -1; }} 3.3、刪除記錄static final String strDelete = “delete from [user] where [userid] = 2;”; public int delete(){ try { db.exec(strDelete,null);//執行一個sql命令,由於不需要處理返回值, //所以callback可以直接為null return 1; } catch(java.lang.Exception ex) { ex.printStackTrace(); return -1; }} 4、查詢數據表以下函數簡單的輸出查詢結果:static final String strDisplay = “select * from [user];”;public int displayTable(){ try { System.out.println(db.get_table(strDisplay)); return 1; } catch(java.lang.Exception ex) { ex.printStackTrace(); return -1; }} 5、處理查詢結果簡單的輸出結果可能並不能滿足大部分查詢的需要,那如何能夠在查詢過程中處理查詢結果呢?可以使用db的exec(String arg0,Callback arg1)方法,具體做法如下:寫一個class TableFmt 實現了SQLite. Callback接口,接着將這個類的一個對象傳遞給exec的Callback參數。這樣exec就會對每個查詢結果調用Callback。繼而實現對結果的處理:接口的實現,實現Callback規定的三個接口函數:class TableFmt implements Callback{ public void columns(String[] cols) { System.out.println(“columns”); for (int i = 0; i cols.length; i++) { System.out.println(cols[i]); } } public boolean newrow(String[] cols) { System.out.println(“newrow”); for (int i = 0; i cols.length; i++) { System.out.println(cols[i]); } return false; } public void types(String[] cols) { System.out.println(“types”); for (int i = 0; i cols.length; i++) { System.out.println(cols[i]); } }}把TableFmt的一個實例傳給exec()函數,這樣便可以實現對結果集的處理。public int dealTable(){ try { db.exec(strDisplay,new TableFmt()); return 1; } catch(java.lang.Exception ex) { ex.printStackTrace(); return -1; }} 你可能覺得沒一個功能寫一個函數太麻煩了,是的。可以做一個通用的函數,把sql語句當作參數傳遞給函數。

如何在Java中使用Sqlite

javasqlite如何實現數據庫的操作:

Javasqlite公開了幾個類,包括:Authorizer、 BusyHandler 、Callback、 Constants 、Database Exception 、Function 、FunctionContext、ProgressHandler、StringEncoder 、TableResult 、Trace 、Vm 關於這幾個類可以參考作者網站上的文檔。

以下通過對一個數據表的操作,介紹如何用這幾個類進行數據庫操作:

數據庫操作類:HelloSqlite2.java:

初始化一個Database對象:Database db = new Database();Database類是主要功能類,通過db對象可以實現對數據庫的操作:

1、 連接數據庫:

public int connectDB(String dbPath)

{

try{

db.open(dbPath,0666);//調用open方法連接數據庫,如果不存在創建這個數據庫文件

return 1;

}

catch(java.lang.Exception ex)

{

ex.printStackTrace();

return -1;

}

}

2、創建數據表

//創建數據庫字符串

static final String strCreate = “create table [User] ([UserID] integer primary key,[UserName] text,”+

“[Password] text,[BeDeleted] integer);”;

public int createTable()

{

try

{

db.exec(strCreate,null);//執行一個sql命令,由於不需要處理返回值,

//所以callback可以直接為null

return 1;

}

catch(java.lang.Exception ex)

{

ex.printStackTrace();

return -1;

}

}

3、修改數據表

3.1、增加記錄

static final String strInsert1 = “INSERT INTO [USER] ([username],[password],[bedeleted])VALUES(‘sacramento’,’123456′,’1′);”;

public int insert()

{

try

{

db.exec(strInsert1,null);//執行一個sql命令,由於不需要處理返回值,

//所以callback可以直接為null

return 1;

}

catch(java.lang.Exception ex)

{

ex.printStackTrace();

return -1;

}

}

3.2、修改記錄

static final String strUpdate = “update [user] set [username] = ‘Boston’ where [userid] = 1;”;

public int update()

{

try

{

db.exec(strUpdate,null);//執行一個sql命令,由於不需要處理返回值,

//所以callback可以直接為null

return 1;

}

catch(java.lang.Exception ex)

{

ex.printStackTrace();

return -1;

}

}

3.3、刪除記錄

static final String strDelete = “delete from [user] where [userid] = 2;”;

public int delete()

{

try

{

db.exec(strDelete,null);//執行一個sql命令,由於不需要處理返回值,

//所以callback可以直接為null

return 1;

}

catch(java.lang.Exception ex)

{

ex.printStackTrace();

return -1;

}

}

4、查詢數據表

以下函數簡單的輸出查詢結果:

static final String strDisplay = “select * from [user];”;

public int displayTable()

{

try

{

System.out.println(db.get_table(strDisplay));

return 1;

}

catch(java.lang.Exception ex)

{

ex.printStackTrace();

return -1;

}

}

5、處理查詢結果

簡單的輸出結果可能並不能滿足大部分查詢的需要,那如何能夠在查詢過程中處理查詢結果呢?可以使用db的exec(String arg0,Callback arg1)方法,具體做法如下:

寫一個class TableFmt 實現了SQLite. Callback接口,接着將這個類的一個對象傳遞給exec的Callback參數。這樣exec就會對每個查詢結果調用Callback。繼而實現對結果的處理:

接口的實現,實現Callback規定的三個接口函數:

class TableFmt implements Callback{

public void columns(String[] cols) {

System.out.println(“columns”);

for (int i = 0; i cols.length; i++) {

System.out.println(cols[i]);

}

}

public boolean newrow(String[] cols) {

System.out.println(“newrow”);

for (int i = 0; i cols.length; i++) {

System.out.println(cols[i]);

}

return false;

}

public void types(String[] cols)

{

System.out.println(“types”);

for (int i = 0; i cols.length; i++) {

System.out.println(cols[i]);

}

}

}

把TableFmt的一個實例傳給exec()函數,這樣便可以實現對結果集的處理。

public int dealTable()

{

try

{

db.exec(strDisplay,new TableFmt());

return 1;

}

catch(java.lang.Exception ex)

{

ex.printStackTrace();

return -1;

}

}

你可能覺得沒一個功能寫一個函數太麻煩了,是的。可以做一個通用的函數,把sql語句當作參數傳遞給函數。

比如實現一個這樣的函數:

int executenonquery(String sql);對於不需要返回值的sql語句,比如增加、刪除、修改、都可以通過這個函數來實現,只需要傳入不同參數就可以,函數代碼如下:

public int executenonquery(String sql)

{

try

{

db.exec(sql,null);//執行一個sql命令,由於不需要處理返回值,

//所以callback可以直接為null

return 1;

}

catch(java.lang.Exception ex)

{

ex.printStackTrace();

return -1;

}

}

java連接sqlite的問題

首先你要打開的數據庫文件是D:/Eclipse work space/student.db,不是相對路徑,所以你的程序應該在D:/Eclipse work space/目錄下運行。但最好使用相對路徑“jdbc:sqlite:student.db”

另外你的sql語句有問題,字符串數據要用”包起來,也就是

String r1=”Insert into student values(‘xingming’,”,’shengri’,”,’dizhi’,”,”,’techang’)”

有人會javaweb調用sqlite的嗎,不是用main方法

1、SQLite是什麼SQLite,是一款輕型的數據庫,是遵守ACID的關聯式數據庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生於2000年5月。至今已經有13個年頭,SQLite也迎來了一個版本SQLite3已經發布。SQLite支持事務處理功能等等。也可以把理解成Microsoft的Access,有時候真的覺得有點象,但是事實上它們區別很大。比如SQLite支持跨平台,操作簡單,能夠使用很多語言直接創建數據庫,而不象Access一樣需要Office的支持。如果你是個很小型的應用,或者你想做嵌入式開發,沒有合適的數據庫系統,那麼你可以考慮使用SQLite。到2013年10月17日最新版本是3.8.1。它的官方網站是:或者,能在上面獲得源代碼和文檔。2、SQLite客戶端管理軟件SQLite亦可以作為桌面數據庫使用,以下為第三方SQLite的GUI軟件。SQLiteMan,使用QT開發的一個SQLite客戶端,支持多語言、跨平台。SQLiteManSQLiteManager,以火狐瀏覽器的擴展形式提供的SQLite客戶端。SQLiteDatabaseBrowser,agraphicalclienttoaccessSQLitedatabasesSqlProSQLClient,anothergraphicalclienttoworkwithSQLitedatabases。3、Java中如何使用SQLitejava連接SQLite代碼如下:importjava.sql.*;importorg.sqlite.JDBC;/***這是個非常簡單的SQLite的Java程序,*程序中創建數據庫、創建表、然後插入數據,*最後讀出數據顯示出來*/publicclassTestSQLite{publicstaticvoidmain(String[]args){try{//連接SQLite的JDBCClass.forName(“org.sqlite.JDBC”);//建立一個數據庫名zieckey.db的連接,如果不存在就在當前目錄下創建之Connectionconn=DriverManager.getConnection(“jdbc:sqlite:zieckey.db”);Statementstat=conn.createStatement();stat.executeUpdate(“createtabletbl1(namevarchar(20),salaryint);”);//創建一個表,兩列stat.executeUpdate(“insertintotbl1values(‘ZhangSan’,8000);”);//插入數據stat.executeUpdate(“insertintotbl1values(‘LiSi’,7800);”);stat.executeUpdate(“insertintotbl1values(‘WangWu’,5800);”);stat.executeUpdate(“insertintotbl1values(‘ZhaoLiu’,9100);”);ResultSetrs=stat.executeQuery(“select*fromtbl1;”);//查詢數據while(rs.next()){//將查詢到的數據打印出來System.out.print(“name=”+rs.getString(“name”)+””);//列屬性一System.out.println(“salary=”+rs.getString(“salary”));//列屬性二}rs.close();conn.close();//結束數據庫的連接}catch(Exceptione){e.printStackTrace();}}}4、Hibernate如何使用SQLitesqlite可以支持2t的數據:2t=1024*2G,一般Hibernate會很少使用SQLite,因為Hibernate一做出的程序都是比較大的項目,不什麼使用SQLite。Hibernate暫時不支持SQlite數據庫表的逆向工程。如果有興趣可以自己動手編寫,否則推薦使用hibernateannotation。連接hibernate,需要Dialect來支持,用來映射java類型和數據庫支持的類型。所以需要編寫Dialect。

java 調用 sqlite 數據庫

只要導入jar包就行了,使用的時候 加載class(即Class.forName(“org.sqlite.JDBC”);)然後可以用最原始的jdbc代碼去使用sqlite比如創建連接:Connection conn = DriverManager.getConnection(“jdbc:sqlite:test.db” );(其中test.db就是數據庫文件以及數據庫的名稱,這句話有兩個作用:1、如果不存在該數據庫則創建並返回連接;2、如果存在了數據庫,則直接返回連接)代碼如下:

import java.sql.*; public class SQLiteJDBC{ public static void main( String args[] ) { Connection c = null; try { //Class.forName加載class Class.forName(“org.sqlite.JDBC”); c = DriverManager.getConnection(“jdbc:sqlite:test.db”); } catch ( Exception e ) { System.err.println( e.getClass().getName() + “: ” + e.getMessage() ); System.exit(0); } System.out.println(“Opened database successfully”); }} 創建表import java.sql.*; public class SQLiteJDBC{ public static void main( String args[] ) { Connection c = null; Statement stmt = null; try { //Class.forName加載class Class.forName(“org.sqlite.JDBC”); //DriverManager.getConnection創建連接 c = DriverManager.getConnection(“jdbc:sqlite:test.db”); System.out.println(“Opened database successfully”); stmt = c.createStatement(); //sql創建表語句 String sql = “CREATE TABLE COMPANY ” + “(ID INT PRIMARY KEY NOT NULL,” + ” NAME TEXT NOT NULL, ” + ” AGE INT NOT NULL, ” + ” ADDRESS CHAR(50), ” + ” SALARY REAL)”; //executeUpdate創建表 stmt.executeUpdate(sql); stmt.close(); c.close(); } catch ( Exception e ) { System.err.println( e.getClass().getName() + “: ” + e.getMessage() ); System.exit(0); } System.out.println(“Table created successfully”); }}

原創文章,作者:SH4D4,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130015.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SH4D4的頭像SH4D4
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論