當前位置:首頁 » 操作系統 » sqlite資料庫java

sqlite資料庫java

發布時間: 2022-05-01 07:48:28

⑴ 如何在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資料庫文件,在Windows環境

首先需要這個包,添加到工程。

下面給你示例代碼

importjava.sql.*;

publicclassSQLiteDemo{

publicstaticvoidmain(String[]args){
try{
//連接SQLite的JDBC
Class.forName("org.sqlite.JDBC");
//建立一個資料庫名data.db的連接,如果不存在就在當前目錄下創建之
Connectionconn=DriverManager.getConnection("jdbc:sqlite:data.db");
conn.setAutoCommit(false);
Statementstat=conn.createStatement();

stat.executeUpdate("createtableifnotexiststbl1(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.commit();
conn.close();//結束資料庫的連接
}
catch(Exceptione)
{
e.printStackTrace();
}
}
}


⑶ java連接sqlite的問題

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

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

Stringr1="Insertintostudentvalues('xingming','','shengri','','di','','','techang')"

⑷ 怎樣在普通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 資料庫。.

下載sqlite-jdbc-3.21.0.jar,

代碼如下:

importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;

publicclassApp{

publicstaticvoidmain(String[]args)throwsClassNotFoundException,SQLException{

Class.forName("org.sqlite.JDBC");

Connectionconn=DriverManager.getConnection("jdbc:sqlite://e://python/sqlite/test.db");

Statementstmt=conn.createStatement();

ResultSetrs=stmt.executeQuery("select*fromtb_visited");

while(rs.next()){
System.out.println(rs.getString(1));
}

rs.close();
stmt.close();
conn.close();
}
}

⑹ 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資料庫

用jdbc連接就好
跟連接其他的數據一樣,加入對應的驅動,操作的方式都一樣的
找驅動,可以在網路上面搜索關鍵字:sqlite jdbc 驅動

⑻ 如何在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資料庫

在Eclipse中新建一個工程,並在Properties》Java build path》Libraries中將這個驅動包導入工程中。
在代碼中導入
import Java.sql.*;
import org.sqlite.JDBC;
然後在main函數中加入下列代碼,編譯運行。
try{
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:filename"); //filename為sqlite資料庫文件名,最好帶上絕對路徑
String sql = "insert into tb_users values('張三','111','男','25')";
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
conn.close();
}catch(Exception e){
e.printStackTrace();
}
然後可以用SQLiteSpy工具打開資料庫文件,就可以看到上面插入的記錄了

熱點內容
虛幻4腳本 發布:2024-10-05 16:46:29 瀏覽:205
c可以用來編譯系統軟體嗎 發布:2024-10-05 16:22:26 瀏覽:19
U盤和存儲器 發布:2024-10-05 16:22:04 瀏覽:898
cmdc語言 發布:2024-10-05 15:58:32 瀏覽:553
伺服器怎麼弄公網ip 發布:2024-10-05 15:57:02 瀏覽:642
設備配置在什麼地方 發布:2024-10-05 15:44:59 瀏覽:251
matlab外部介面編程 發布:2024-10-05 15:36:58 瀏覽:366
C事件編程 發布:2024-10-05 15:15:43 瀏覽:642
一台伺服器出現兩IP 發布:2024-10-05 15:10:05 瀏覽:928
md5加密演算法c 發布:2024-10-05 15:05:40 瀏覽:764