如何在java中使用sqlite

 我来答
手机用户31802
推荐于2016-06-22 · TA获得超过132个赞
知道答主
回答量:134
采纳率:0%
帮助的人:183万
展开全部
以下通过对一个数据表的操作,介绍如何用这几个类进行数据库操作:数据库操作类: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语句当作参数传递给函数。
samismiling
推荐于2018-03-30 · 知道合伙人软件行家
samismiling
知道合伙人软件行家
采纳数:1340 获赞数:5604

向TA提问 私信TA
展开全部
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。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自恋狂学长
2018-06-15 · 知道合伙人互联网行家
自恋狂学长
知道合伙人互联网行家
采纳数:1 获赞数:6
工程师

向TA提问 私信TA
展开全部

我用C#操作Sqlite,供你参考

网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式