POP Article V2.0 设为主页
收藏本站
首 页交流论坛留 言
您现在的位置:首 页 >> 数据库编程 >> 原创文章及代码 >> 查看文章
[原创]如何在java中使用sqlite(2)
作者:陈文成  来源:本站  时间:2006-5-11  【 字体: 】 〖 双击滚屏 〗

如何在java中使用sqlite

  上篇文章介绍了如何在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;

    }

}

浏览次数:   【 打 印 】【 关 闭
上一篇:Smart Album (智能相册)
下一篇:点评主流开源数据库的技术特点
 论坛登陆
用户名:
密  码:
验证码: 
Cookie 选项:
正常登陆 隐身登陆
   
没有注册?
 文章搜索
 推荐文章
 热门文章
 网站统计
关于我们 | 网站地图 | 联系我们 | 网站历史 | 友情链接 | TOP
Copyright© 2006 Sqlite中文社区    程序开发: mistletoe  站长: 林轩 陈文成