SQLite 在 Java中的使用
发布时间:2020-12-12 20:07:24 所属栏目:百科 来源:网络整理
导读:本文是根据 http://www.sqlite.com.cn/MySqlite/3/31.Html http://www.sqlite.com.cn/MySqlite/3/80.Html 结合自己的理解所得。 Javasqlite提供了sqlite的java包装,使用这个库可以方便的在java中使用sqlite。它包含了一个可以调用sqlite的JDBC驱动。内部使
本文是根据
http://www.sqlite.com.cn/MySqlite/3/31.Html
http://www.sqlite.com.cn/MySqlite/3/80.Html 结合自己的理解所得。 Javasqlite提供了sqlite的java包装,使用这个库可以方便的在java中使用sqlite。它包含了一个可以调用sqlite的JDBC驱动。内部使用了JNI来调用Sqlite的Interface。以下简单介绍一下如何在Eclipse中配置一个可以调用sqlite的工程: 1、 下载javasqlite包: 官方网站上还提供简单的文档。http://www.ch-werner.de/javasqlite 其中有jar包和源码下载的链接。 http://www.ch-werner.de/javasqlite/javasqlite-20100131.tar.gz http://www.ch-werner.de/javasqlite/javasqlite-20100131-win32.zip 2、 配置Eclipse工程: 把sqlite.jar拷到你的sdk安装目录下的jrelibext路径下;把sqlite_jni.dll拷到对应的 jrebin目录下。 然后创建一个Eclipse工程sqlite,把这两个文件添加到你的工程里就可以了。 其实不把上述的两个文件添加到sdk下面的路径也是可以的,只要保证你的工程里可以顺利的调用到这两个文件就可以了。 3、 开始写测试类 创建一个HelloSqlite.java 。 引入相关类:import SQLite.*,这样就可以使用sqlite.jar里面的类了, 初始化一个Database对象:Database db = new Database(); 我在HelloSqlite.java里面就简单得调用了Database.Version()来查看当前数据库的版本。 代码如下: Java代码
import SQLite.*; public class HelloSqlite { Database db=new Database(); public static void main(String[] args) { HelloSqlite s=new HelloSqlite(); System.out.println(s.db.version()); } } 4.连接数据库: Java代码
public int connectDB(String dbPath) { try{ db.open(dbPath,0666);//调用open方法连接数据库,如果不存在创建这个数据库文件,该数据库将产生在项目工程的根目录下。 return 1; } catch(java.lang.Exception ex) { ex.printStackTrace(); return -1; } } 5.建表语句 Java代码
static final String strCreate ="create table user (userid integer primary key,username text)"; 增加执行方法: Java代码
public int excute(String sql){ try { db.exec(sql,new TableFmt());//这是回调函数,用于处理返回结果。后面有介绍 return 1; } catch (java.lang.Exception e) { e.printStackTrace(); return -1; } } 6.写入,查询语句 Java代码
static final String strInsert ="insert into user values (2,'James')"; static final String strDisplay ="select * from user"; 7.处理查询结果 实现了SQLite. Callback接口,接着将这个类的一个对象传递给exec的Callback参数。这样exec就会对每个查询结果调用Callback。继而实现对结果的处理 Java代码
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]); } } } 8.执行测试 Java代码
public static void main(String[] args) { HelloSqlite s=new HelloSqlite(); System.out.println(s.db.version()); s.connectDB("abc.db"); s.excute(strCreate); s.excute(strInsert); s.excute(strDisplay); } 执行结果: Java代码
2.8.17 columns userid username newrow 2 James 9.完整代码 Java代码
import SQLite.*; public class HelloSqlite { Database db=new Database(); static final String strCreate ="create table user (userid integer primary key,username text)"; static final String strInsert ="insert into user values (2,'James')"; static final String strDisplay ="select * from user"; public int connectDB(String dbPath){ try { db.open(dbPath,0666); return 1; } catch (java.lang.Exception e) { e.printStackTrace(); return -1; } } public int excute(String sql){ try { db.exec(sql,new TableFmt()); return 1; } catch (java.lang.Exception e) { e.printStackTrace(); return -1; } } public static void main(String[] args) { HelloSqlite s=new HelloSqlite(); System.out.println(s.db.version()); s.connectDB("abc.db"); s.excute(strCreate); s.excute(strInsert); s.excute(strDisplay); } } 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]); } } } 另外,Sqlite JDBC 是一个sqlite的jdbc操作包,使用它后,我们就可以像操作其他数据库一样操作sqlite。详情请见http://www.zentus.com/sqlitejdbc/ 引用自:http://huangtut.iteye.com/blog/709144 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |