當前位置:首頁 » 編程語言 » javasqlite資料庫

javasqlite資料庫

發布時間: 2023-06-26 10:24:12

㈠ [原創]如何在java中使用sqlite(2)

如何在java中使用sqlite: 上篇文章介紹了如何在Eclipse中配置javasqlite,以下簡單介紹javasqlite如何實現資料庫的操作: Javasqlite公開了幾個類,包括:Authorizer、 BusyHandler、Callback、Constants、DatabaseException、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資料庫

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


importjava.sql.*;

publicclassSQLiteJDBC
{
publicstaticvoidmain(Stringargs[])
{
Connectionc=null;
try{
//Class.forName載入class
Class.forName("org.sqlite.JDBC");
c=DriverManager.getConnection("jdbc:sqlite:test.db");
}catch(Exceptione){
System.err.println(e.getClass().getName()+":"+e.getMessage());
System.exit(0);
}
System.out.println("Openeddatabasesuccessfully");
}
}

創建表
importjava.sql.*;

publicclassSQLiteJDBC
{
publicstaticvoidmain(Stringargs[])
{
Connectionc=null;
Statementstmt=null;
try{
//Class.forName載入class
Class.forName("org.sqlite.JDBC");
//DriverManager.getConnection創建連接
c=DriverManager.getConnection("jdbc:sqlite:test.db");
System.out.println("Openeddatabasesuccessfully");
stmt=c.createStatement();
//sql創建表語句
Stringsql="CREATETABLECOMPANY"+
"(IDINTPRIMARYKEYNOTNULL,"+
"NAMETEXTNOTNULL,"+
"AGEINTNOTNULL,"+
"ADDRESSCHAR(50),"+
"SALARYREAL)";
//executeUpdate創建表
stmt.executeUpdate(sql);
stmt.close();
c.close();
}catch(Exceptione){
System.err.println(e.getClass().getName()+":"+e.getMessage());
System.exit(0);
}
System.out.println("Tablecreatedsuccessfully");
}
}

㈢ 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"); }}

㈣ 如何在java中使用sqlite

1、SQLite是什麼

SQLite,是一款輕型的資料庫,是遵守ACID的關聯式資料庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資
源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語
言相結合,比如
Tcl、C#、PHP、Java等,還有ODBC介面,同樣比起Mysql、PostgreSQL這兩款開源世界著名的資料庫管理系統來講,它的處理速度
比他們都快。SQLite第一個Alpha版本誕生於2000年5月。 至今已經有13個年頭,SQLite也迎來了一個版本 SQLite
3已經發布。

SQLite支持事務處理功能等等。也可以把理解成Microsoft的Access,有時候真的覺得有點象,但是事實上它們區別很大。比如SQLite

支持跨平台,操作簡單,能夠使用很多語言直接創建資料庫,而不象Access一樣需要Office的支持。如果你是個很小型的應用,或者你想做嵌入式開
發,沒有合適的資料庫系統,那麼你可以考慮使用SQLite。到2013年10月17日最新版本是 3.8.1 。它的官方網站是:http://www.sqlite.org或者http://www.sqlite.com.cn,能在上面獲得源代碼和文檔。

2、SQLite客戶端管理軟體
SQLite亦可以作為桌面資料庫使用,以下為第三方SQLite的GUI軟體。
SQLiteMan,使用QT開發的一個SQLite客戶端,支持多語言、跨平台。SQLiteMan
SQLite Manager, 以 火狐瀏覽器的擴展形式提供的SQLite客戶端。
SQLite Database Browser, a graphical client to access SQLite databases
SqlPro SQL Client, another graphical client to work with SQLite databases。

3、Java中如何使用SQLite
java連接SQLite 代碼如下:
importjava.sql. * ;
importorg.sqlite.JDBC;
/**
* 這是個非常簡單的SQLite的Java程序,
* 程序中創建資料庫、創建表、然後插入數據,
* 最後讀出數據顯示出來
*/
publicclass TestSQLite {
publicstaticvoid main(String[] args) {
try {
//連接SQLite的JDBC
Class.forName("org.sqlite.JDBC");
//建立一個資料庫名zieckey.db的連接,如果不存在就在當前目錄下創建之
Connection conn = DriverManager.getConnection("jdbc:sqlite:zieckey.db");
Statement stat = conn.createStatement();
stat.executeUpdate("create table tbl1(name varchar(20), salary int);"); //創建一個表,兩列
stat.executeUpdate("insert into tbl1values('ZhangSan',8000);"); //插入數據
stat.executeUpdate("insert into tbl1values('LiSi',7800);");
stat.executeUpdate("insert into tbl1values('WangWu',5800);");
stat.executeUpdate("insert into tbl1values('ZhaoLiu',9100);");
ResultSet rs = stat.executeQuery("select * from tbl1;"); //查詢數據
while (rs.next()) { //將查詢到的數據列印出來
System.out.print("name = " + rs.getString("name") + " "); //列屬性一
System.out.println("salary = " + rs.getString("salary")); //列屬性二
}
rs.close();
conn.close(); //結束資料庫的連接
} catch(Exception e) {
e.printStackTrace();
}
}
}

4、Hibernate如何使用SQLite
sqlite可以支持2t的數據:2t=1024*2G,一般Hibernate會很少使用SQLite,因為Hibernate一做出的程序都是比較大的項目,不什麼使用SQLite。

Hibernate暫時不支持SQlite資料庫表的逆向工程。如果有興趣可以自己動手編寫,否則推薦使用hibernate
annotation。連接hibernate,需要Dialect來支持,用來映射java類型和資料庫支持的類型。所以需要編寫Dialect。

㈤ 如何在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;
}
}

熱點內容
win2008r2搭建iscsi伺服器 發布:2025-02-12 09:18:30 瀏覽:634
python解壓zip 發布:2025-02-12 09:08:46 瀏覽:921
如何加強人員配置 發布:2025-02-12 09:07:54 瀏覽:417
lol一區為什麼伺服器好卡 發布:2025-02-12 09:02:22 瀏覽:629
安卓運營商cm是哪個版本 發布:2025-02-12 09:00:00 瀏覽:515
pythonmd5校驗 發布:2025-02-12 08:51:00 瀏覽:470
編程題解析 發布:2025-02-12 08:40:30 瀏覽:454
bilibi手機緩存目錄在 發布:2025-02-12 08:33:11 瀏覽:458
聽ti密碼是多少 發布:2025-02-12 08:22:15 瀏覽:289
淘寶上傳視頻憑證 發布:2025-02-12 08:06:46 瀏覽:879