java调用sqlite太郁闷的简单介绍

本文目录一览:

如何在java中使用sqlite

以下通过对一个数据表的操作,介绍如何用这几个类进行数据库操作:数据库操作类: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语句当作参数传递给函数。

如何在Java中使用Sqlite

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 = 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的问题

首先你要打开的数据库文件是D:/Eclipse work space/student.db,不是相对路径,所以你的程序应该在D:/Eclipse work space/目录下运行。但最好使用相对路径“jdbc:sqlite:student.db”

另外你的sql语句有问题,字符串数据要用”包起来,也就是

String r1=”Insert into student values(‘xingming’,”,’shengri’,”,’dizhi’,”,”,’techang’)”

有人会javaweb调用sqlite的吗,不是用main方法

1、SQLite是什么SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。至今已经有13个年头,SQLite也迎来了一个版本SQLite3已经发布。SQLite支持事务处理功能等等。也可以把理解成Microsoft的Access,有时候真的觉得有点象,但是事实上它们区别很大。比如SQLite支持跨平台,操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你可以考虑使用SQLite。到2013年10月17日最新版本是3.8.1。它的官方网站是:或者,能在上面获得源代码和文档。2、SQLite客户端管理软件SQLite亦可以作为桌面数据库使用,以下为第三方SQLite的GUI软件。SQLiteMan,使用QT开发的一个SQLite客户端,支持多语言、跨平台。SQLiteManSQLiteManager,以火狐浏览器的扩展形式提供的SQLite客户端。SQLiteDatabaseBrowser,agraphicalclienttoaccessSQLitedatabasesSqlProSQLClient,anothergraphicalclienttoworkwithSQLitedatabases。3、Java中如何使用SQLitejava连接SQLite代码如下:importjava.sql.*;importorg.sqlite.JDBC;/***这是个非常简单的SQLite的Java程序,*程序中创建数据库、创建表、然后插入数据,*最后读出数据显示出来*/publicclassTestSQLite{publicstaticvoidmain(String[]args){try{//连接SQLite的JDBCClass.forName(“org.sqlite.JDBC”);//建立一个数据库名zieckey.db的连接,如果不存在就在当前目录下创建之Connectionconn=DriverManager.getConnection(“jdbc:sqlite:zieckey.db”);Statementstat=conn.createStatement();stat.executeUpdate(“createtabletbl1(namevarchar(20),salaryint);”);//创建一个表,两列stat.executeUpdate(“insertintotbl1values(‘ZhangSan’,8000);”);//插入数据stat.executeUpdate(“insertintotbl1values(‘LiSi’,7800);”);stat.executeUpdate(“insertintotbl1values(‘WangWu’,5800);”);stat.executeUpdate(“insertintotbl1values(‘ZhaoLiu’,9100);”);ResultSetrs=stat.executeQuery(“select*fromtbl1;”);//查询数据while(rs.next()){//将查询到的数据打印出来System.out.print(“name=”+rs.getString(“name”)+””);//列属性一System.out.println(“salary=”+rs.getString(“salary”));//列属性二}rs.close();conn.close();//结束数据库的连接}catch(Exceptione){e.printStackTrace();}}}4、Hibernate如何使用SQLitesqlite可以支持2t的数据:2t=1024*2G,一般Hibernate会很少使用SQLite,因为Hibernate一做出的程序都是比较大的项目,不什么使用SQLite。Hibernate暂时不支持SQlite数据库表的逆向工程。如果有兴趣可以自己动手编写,否则推荐使用hibernateannotation。连接hibernate,需要Dialect来支持,用来映射java类型和数据库支持的类型。所以需要编写Dialect。

java 调用 sqlite 数据库

只要导入jar包就行了,使用的时候 加载class(即Class.forName(“org.sqlite.JDBC”);)然后可以用最原始的jdbc代码去使用sqlite比如创建连接:Connection conn = DriverManager.getConnection(“jdbc:sqlite:test.db” );(其中test.db就是数据库文件以及数据库的名称,这句话有两个作用:1、如果不存在该数据库则创建并返回连接;2、如果存在了数据库,则直接返回连接)代码如下:

import java.sql.*; public class SQLiteJDBC{ public static void main( String args[] ) { Connection c = null; try { //Class.forName加载class Class.forName(“org.sqlite.JDBC”); c = DriverManager.getConnection(“jdbc:sqlite:test.db”); } catch ( Exception e ) { System.err.println( e.getClass().getName() + “: ” + e.getMessage() ); System.exit(0); } System.out.println(“Opened database successfully”); }} 创建表import java.sql.*; public class SQLiteJDBC{ public static void main( String args[] ) { Connection c = null; Statement stmt = null; try { //Class.forName加载class Class.forName(“org.sqlite.JDBC”); //DriverManager.getConnection创建连接 c = DriverManager.getConnection(“jdbc:sqlite:test.db”); System.out.println(“Opened database successfully”); stmt = c.createStatement(); //sql创建表语句 String sql = “CREATE TABLE COMPANY ” + “(ID INT PRIMARY KEY NOT NULL,” + ” NAME TEXT NOT NULL, ” + ” AGE INT NOT NULL, ” + ” ADDRESS CHAR(50), ” + ” SALARY REAL)”; //executeUpdate创建表 stmt.executeUpdate(sql); stmt.close(); c.close(); } catch ( Exception e ) { System.err.println( e.getClass().getName() + “: ” + e.getMessage() ); System.exit(0); } System.out.println(“Table created successfully”); }}

原创文章,作者:SH4D4,如若转载,请注明出处:https://www.506064.com/n/130015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
SH4D4SH4D4
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • Python简单数学计算

    本文将从多个方面介绍Python的简单数学计算,包括基础运算符、函数、库以及实际应用场景。 一、基础运算符 Python提供了基础的算术运算符,包括加(+)、减(-)、乘(*)、除…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29

发表回复

登录后才能评论