sqlitejava
Ⅰ 怎樣把sqlite導入到java中,又該如何調用sqlite並對其進行增刪改查操作
關於java如何操作sqlite數據,小編在之前已經寫過一篇經驗了,這里不在細說,直接給你經驗的地址吧!
名稱:java如何讀寫SQLite資料庫
地址:http://jingyan..com/article/a3a3f811c62a3e8da3eb8a4a.html
有用請採納,有任何疑問歡迎向我提問
Ⅱ sqlite 和 java 數據類型對應問題
SQLite3支持 NULL、INTEGER、REAL(浮點數字)、TEXT(字元串文本)和BLOB(二進制對象)數據類型,雖然它支持的類型只有五種,但實際上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等數據類型,只不過在運算或保存時會轉成對應的五種數據類型。
SQLite最大的特點是你可以把各種類型的數據保存到任何欄位中,而不用關心欄位聲明的數據類型是什麼。例如:可以在Integer類型的欄位中存放字元串,或者在布爾型欄位中存放浮點數,或者在字元型欄位中存放日期型值。
但有一種情況例外:定義為INTEGER PRIMARY KEY的欄位只能存儲64位整數, 當向這種欄位保存除整數以外的數據時,將會產生錯誤。 另外, SQLite 在解析CREATE TABLE 語句時,會忽略 CREATE TABLE 語句中跟在欄位名後面的數據類型信息,如下面語句會忽略 name欄位的類型信息:
CREATE TABLE student(id integer primary key autoincrement, name varchar(20))
Ⅲ 如何在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;
}
}
Ⅳ sqlite用JAVA 備份還原
stms.executeUpdate("backup to '" + db_path + "'");// 備份
stms.executeUpdate("restore from '" + db_path + "'");//恢復
Ⅳ java的sqlite運行不出來,錯誤如下
沒有sqllite的驅動包
Ⅵ 如何在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資料庫文件,在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資料庫文件
/**
* @author Tim
*/
public class JavaSqlite {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
// 0 連接SQLite的JDBC
String sql=\"jdbc:sqlite://e:/tim.db\";
Class.forName(\"org.sqlite.JDBC\");
// 1 建立一個資料庫名zieckey.db的連接,如果不存在就在當前目錄下創建之
Connection conn = DriverManager.getConnection(sql);
Statement stat = conn.createStatement();
// 2 創建一個表tbl1,錄入數據
stat.executeUpdate(\"drop table if exists tbl1;\");
stat.executeUpdate(\"create table if not exists tbl1(name varchar(20), salary int);\");// 創建一個表,兩列
stat.executeUpdate(\"insert into tbl1 values(\'ZhangSan\',8000);\"); // 插入數據
stat.executeUpdate(\"insert into tbl1 values(\'LiSi\',7800);\");
stat.executeUpdate(\"insert into tbl1 values(\'WangWu\',5800);\");
stat.executeUpdate(\"insert into tbl1 values(\'ZhaoLiu\',9100);\");
ResultSet rs = stat.executeQuery(\"select * from tbl1;\"); // 查詢數據
System.out.println(\"創建表結構錄入數據操作演示:\");
while (rs.next()) { // 將查詢到的數據列印出來
System.out.print(\"name = \" + rs.getString(\"name\") + \", \"); // 列屬性一
System.out.println(\"salary = \" + rs.getString(\"salary\")); // 列屬性二
}
rs.close();
// 3 修改表結構,添加欄位 address varchar(20) default \'changsha\';
stat.executeUpdate(\"alter table tbl1 add column address varchar(20) not null default \'changsha\'; \");// 創建一個表,兩列
stat.executeUpdate(\"insert into tbl1 values(\'HongQi\',9000,\'tianjing\');\"); // 插入數據
stat.executeUpdate(\"insert into tbl1(name,salary) values(\'HongQi\',9000);\"); // 插入數據
rs = stat.executeQuery(\"select * from tbl1;\"); // 查詢數據
System.out.println(\"表結構變更操作演示:\");
while (rs.next()) { // 將查詢到的數據列印出來
System.out.print(\"name = \" + rs.getString(\"name\") + \", \"); // 列屬性一
System.out.print(\"name = \" + rs.getString(\"name\") + \", \"); // 列屬性二
System.out.println(\"address = \" + rs.getString(\"address\")); // 列屬性三
}
rs.close();
conn.close(); // 結束資料庫的連接
} catch (Exception e) {
e.printStackTrace();
}
}
Ⅸ 怎樣在普通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資料庫
在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工具打開資料庫文件,就可以看到上面插入的記錄了