Sqlite China  
首页 | 各种语言的sqlite编程 |sqlite研究 | sqlite应用实例与杂谈 | sqlite相关下载 | SQlite论坛
当前位置 : 主页>各种语言的sqlite编程>列表
如何在java中使用sqlite(2)
来源:工友 作者:工友 时间:2007-12-21

  上篇文章介绍了如何在Eclipse中配置javasqlite,以下简单介绍javasqlite如何实现数据库的操作:

     Javasqlite公开了几个类,包括:Authorizer  BusyHandler Callback Constants Database Exception Function FunctionContextProgressHandlerStringEncoder 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、处理查询结果

简单的输出结果可能并不能满足大部分查询的需要,那如何能够在查询过程中处理查询结果呢?可以使用dbexec(String arg0,Callback arg1)方法,具体做法如下:

写一个class TableFmt 实现了SQLite. Callback接口,接着将这个类的一个对象传递给execCallback参数。这样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(1) 下一篇:Zend 官方SQLite介绍文档
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
§最新评论
热点文章
·简单的在Java中使用SQLite
·C/C++中调用SQLITE3的基本
·PHP+SQLITE制作简单的视频
·DISQLite3 简介 SQLite de
·VB.NET 中使用 SQLite3 的
·SQLiteJDBC 100%纯JAVA的s
·如何在Windows下编译SQLit
·关于SQLite的一些简单介绍
·在VC6.0中使用C++访问sqli
·C/C++中调用SQLITE3的基本
·SQLite 与 PHP 结合开发(
·在VC6.0中使用C++访问sqli
·使用SQLite进行网站搜索
·SQLite ADO.NET 驱动(C#
·在.NET C#中使用sqlite
·python模块之sqlite数据库
·PHP中的SQlite数据库应用
·如何在PHP5中通过PDO连接S
·PHP中如何使用sqlite_crea
·SQLite 、 PHP混合扩展编
相关文章
·让你的PHP4也用上Sqlite3
·VB.NET 中使用 SQLite3 的
·C/C++中调用SQLITE3的基本
·python模块之sqlite数据库
·在.NET C#中使用sqlite
·用Ruby进行SQLite的开发指
·PHP5中的 sqlite_create_f
·SQLite ADO.NET 驱动(C#
·使用SQLite进行网站搜索
·如何在Windows下编译SQLit

版权Power by DedeCms   后台登陆
Copyright @ 2007