如何通过java实现对sqlite数据库的增删改查

如何通过java实现对sqlite数据库的增删改查,第1张

如何通过java实现对sqlite数据库的增删改查

首先得确定你的数据库连接是通过什么形式连接的,hibernate还是原生态的jdbc 还是spring; 如果是只有hibernate,那么你得通过加载配置文件得到sessionFactory,然后得到session 如果spring,那么同样也需要注入sessionfactory到你的dao

关于java如何 *** 作sqlite数据,小编在之前已经写过一篇经验了,这里不在细说,直接给你经验的地址吧!

名称:java如何读写SQLite数据库

地址:http://jingyan.baidu.com/article/a3a3f811c62a3e8da3eb8a4a.html

有用请采纳,有任何疑问欢迎向我提问

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 = 0i <cols.lengthi++) {

System.out.println(cols[i])

}

}

public boolean newrow(String[] cols) {

System.out.println("newrow")

for (int i = 0i <cols.lengthi++) {

System.out.println(cols[i])

}

return false

}

public void types(String[] cols)

{

System.out.println("types")

for (int i = 0i <cols.lengthi++) {

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

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9261124.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存