`
tuxq5721
  • 浏览: 34480 次
社区版块
存档分类
最新评论

JDBC —— SQLite JDBC使用

阅读更多

首先在项目引入JARsqlite-jdbc-(VERSION).jar

  • 连接到数据库(Connecting To Database)
  • 创建一个表(Create a Table)
  • 插入操作(INSERT Operation)
  • 查询操作(SELECT Operation)
  • 更新操作(UPDATE Operation)
  • 删除操作(DELETE Operation)
 

连接到数据库(Connecting To Database)

下面的代码演示了如何连接到一个现有的数据库。如果数据库不存在,那么它会被自动创建,最终返回一个数据库连接实例。

public class SQLiteJDBC {  
  
public static void main(String args[]) {  
  
Connection c = null;  
  
try {  
  
Class.forName("org.sqlite.JDBC");  
  
c = DriverManager.getConnection("jdbc:sqlite:test.db");  
  
c.close();  
  
} catch (Exception e) {  
  
System.err.println(e.getClass().getName() + ": " + e.getMessage());  
  
System.exit(0);  
  
}  
  
System.out.println("Opened database successfully");  
  
}  
  
}  

 

 

创建一个表(Create a Table)

 

下面的Java程序用于在先前创建的数据库中创建一个表:

    public class SQLiteJDBC {  
        public static void main(String args[]) {  
            Connection c = null;  
            Statement stmt = null;  
            try {  
                Class.forName("org.sqlite.JDBC");  
                c = DriverManager.getConnection("jdbc:sqlite:test.db");  
                System.out.println("Opened database successfully");  
                stmt = c.createStatement();  
                String sql = "CREATE TABLE COMPANY "  
                    + "(ID INT PRIMARY KEY     NOT NULL        ,"  
                    + " NAME           TEXT    NOT NULL        ,"  
                    + " AGE            INT     NOT NULL        ,"  
                    + " ADDRESS        CHAR(50)                ,"   
                    + " SALARY         REAL)                ";  
                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");   
        }  
    }  

 

 

插入操作(INSERT Operation)

下面的Java程序演示了如何在COMPANY表中插入一些记录:

public class SQLiteJDBC {  
  
public static void main(String args[]) {  
  
Connection c = null;  
  
Statement stmt = null;  
  
try {  
  
Class.forName("org.sqlite.JDBC");  
  
c = DriverManager.getConnection("jdbc:sqlite:test.db");  
  
c.setAutoCommit(false);  
  
System.out.println("Opened database successfully");  
  
stmt = c.createStatement();  
  
String sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "  
  
+ "VALUES (1, 'Paul', 32, 'California', 20000.00 );";  
  
stmt.executeUpdate(sql);  
  
   
  
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "  
  
+ "VALUES (2, 'Allen', 25, 'Texas', 15000.00 );";  
  
stmt.executeUpdate(sql);  
  
   
  
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "  
  
+ "VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );";  
  
stmt.executeUpdate(sql);  
  
   
  
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "  
  
+ "VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );";  
  
stmt.executeUpdate(sql);  
  
   
  
stmt.close();  
  
c.commit();  
  
c.close();   
  
} catch (Exception e) {  
  
System.err.println(e.getClass().getName() + ": " + e.getMessage());  
  
System.exit(0);  
  
}  
  
System.out.println("Records created successfully");  
  
}  
  
}  

 

查询操作(SELECT Operation)

下面的Java程序演示了如何能够获取并显示在上面例子中插入的记录:

    public class SQLiteJDBC {  
      
    public static void main(String args[]) {  
      
    Connection c = null;  
      
    Statement stmt = null;  
      
    try {  
      
    Class.forName("org.sqlite.JDBC");  
      
    c = DriverManager.getConnection("jdbc:sqlite:test.db");  
      
    c.setAutoCommit(false);  
      
    System.out.println("Opened database successfully");  
      
       
      
    stmt = c.createStatement();  
      
    ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;");  
      
    while (rs.next()) {  
      
    int id = rs.getInt("id");  
      
    String name = rs.getString("name");  
      
    int age = rs.getInt("age");  
      
    String address = rs.getString("address");  
      
    float salary = rs.getFloat("salary");  
      
    System.out.println("ID = " + id);  
      
    System.out.println("NAME = " + name);  
      
    System.out.println("AGE = " + age);  
      
    System.out.println("ADDRESS = " + address);  
      
    System.out.println("SALARY = " + salary);  
      
    System.out.println();  
      
    }  
      
       
      
    rs.close();  
      
    stmt.close();  
      
    c.close();  
      
    } catch (Exception e) {  
      
    System.err.println(e.getClass().getName() + ": " + e.getMessage());  
      
    System.exit(0);  
      
    }  
      
    System.out.println("Operation done successfully");  
      
    }  
      
    }  
 

编译并运行后,在控制台的输出:

Opened database successfully

ID = 1

NAME = Paul

AGE = 32

ADDRESS = California

SALARY = 20000.0

 

ID = 2

NAME = Allen

AGE = 25

ADDRESS = Texas

SALARY = 15000.0

 

ID = 3

NAME = Teddy

AGE = 23

ADDRESS = Norway

SALARY = 20000.0

 

ID = 4

NAME = Mark

AGE = 25

ADDRESS = Rich-Mond

SALARY = 65000.0

 

Operation done successfully

 

 

更新操作(UPDATE Operation)

下面的Java代码演示了如何使用UPDATE语句来从本公司表更新任何记录,然后获取并显示更新的记录:

    public class SQLiteJDBC {  
      
    public static void main(String args[]) {  
      
    Connection c = null;  
      
    Statement stmt = null;  
      
    try {  
      
    Class.forName("org.sqlite.JDBC");  
      
    c = DriverManager.getConnection("jdbc:sqlite:test.db");  
      
    c.setAutoCommit(false);  
      
    System.out.println("Opened database successfully");  
      
       
      
    stmt = c.createStatement();  
      
    String sql = "UPDATE COMPANY set SALARY = 25000.00 where ID=1;";  
      
    stmt.executeUpdate(sql);  
      
    c.commit();  
      
       
      
    ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;");  
      
    while (rs.next()) {  
      
    int id = rs.getInt("id");  
      
    String name = rs.getString("name");  
      
    int age = rs.getInt("age");  
      
    String address = rs.getString("address");  
      
    float salary = rs.getFloat("salary");  
      
    System.out.println("ID = " + id);  
      
    System.out.println("NAME = " + name);  
      
    System.out.println("AGE = " + age);  
      
    System.out.println("ADDRESS = " + address);  
      
    System.out.println("SALARY = " + salary);  
      
    System.out.println();  
      
    }  
      
       
      
    rs.close();  
      
    stmt.close();  
      
    c.close();  
      
    } catch (Exception e) {  
      
    System.err.println(e.getClass().getName() + ": " + e.getMessage());  
      
    System.exit(0);  
      
    }  
      
    System.out.println("Operation done successfully");  
      
    }  
      
    }  

 

 

编译并运行后,在控制台的输出:

Opened database successfully

ID = 1

NAME = Paul

AGE = 32

ADDRESS = California

SALARY = 25000.0

 

ID = 2

NAME = Allen

AGE = 25

ADDRESS = Texas

SALARY = 15000.0

 

ID = 3

NAME = Teddy

AGE = 23

ADDRESS = Norway

SALARY = 20000.0

 

ID = 4

NAME = Mark

AGE = 25

ADDRESS = Rich-Mond

SALARY = 65000.0

 

Operation done successfully

 

 

 

 

删除操作(DELETE Operation)

下面的Java代码显示了如何使用DELETE语句删除任何记录,然后获取并显示公司表中未被删除的记录:

    public class SQLiteJDBC {  
      
    public static void main(String args[]) {  
      
    Connection c = null;  
      
    Statement stmt = null;  
      
    try {  
      
    Class.forName("org.sqlite.JDBC");  
      
    c = DriverManager.getConnection("jdbc:sqlite:test.db");  
      
    c.setAutoCommit(false);  
      
    System.out.println("Opened database successfully");  
      
       
      
    stmt = c.createStatement();  
      
    String sql = "DELETE from COMPANY where ID=2;";  
      
    stmt.executeUpdate(sql);  
      
    c.commit();  
      
       
      
    ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;");  
      
    while (rs.next()) {  
      
    int id = rs.getInt("id");  
      
    String name = rs.getString("name");  
      
    int age = rs.getInt("age");  
      
    String address = rs.getString("address");  
      
    float salary = rs.getFloat("salary");  
      
    System.out.println("ID = " + id);  
      
    System.out.println("NAME = " + name);  
      
    System.out.println("AGE = " + age);  
      
    System.out.println("ADDRESS = " + address);  
      
    System.out.println("SALARY = " + salary);  
      
    System.out.println();  
      
    }  
      
    rs.close();  
      
    stmt.close();  
      
    c.close();  
      
    } catch (Exception e) {  
      
    System.err.println(e.getClass().getName() + ": " + e.getMessage());  
      
    System.exit(0);  
      
    }  
      
    System.out.println("Operation done successfully");  
      
    }  
      
    }  

 

编译并运行后,在控制台的输出:

Opened database successfully

ID = 1

NAME = Paul

AGE = 32

ADDRESS = California

SALARY = 25000.0

 

ID = 3

NAME = Teddy

AGE = 23

ADDRESS = Norway

SALARY = 20000.0

 

ID = 4

NAME = Mark

AGE = 25

ADDRESS = Rich-Mond

SALARY = 65000.0

 

Operation done successfully

 

分享到:
评论

相关推荐

    sqlite-jdbc-3.23.1.7z

    "sqlite-jdbc-3.23.1.7z"这个压缩包包含的是SQLite JDBC驱动的特定版本——3.23.1。 SQLite JDBC驱动是Java的JDBC(Java Database Connectivity)接口的一个实现,允许Java程序通过JDBC API连接到SQLite数据库。这...

    sqlite3-3.26.0.zip

    这个"sqlite3-3.26.0.zip"压缩包包含的是 SQLite3 的特定版本——V3.26.0,它经过了重新编译,并且在默认情况下启用了外键约束功能。这一改动意味着在使用这个版本的 SQLite3 时,你无需在 SQL 命令中额外设置来启用...

    jdbc引擎.zip

    值得注意的是,虽然MySQL Connector/J可以在Android上运行,但在实际应用中,出于安全和性能考虑,通常会使用ORM框架(如SQLite或Realm)或者云数据库服务(如Firebase Realtime Database)来代替直接操作JDBC。...

    JSP源码——JSP_JTBC_CMS(SQLITE).zip

    在JSP应用中,通常会使用JDBC(Java Database Connectivity)API来与SQLite进行交互,执行SQL语句,实现数据的增删改查。 源码的学习和分析可以从以下几个方面入手: 1. **页面结构**:查看JSP文件,了解各个页面...

    安卓SQLite数据库相关-安卓手机JDBC直读SQL2000SQL2005SQL2008数据库.rar

    然而,Android并不直接支持JDBC,因为它是Java标准版的一部分,而Android使用的是Java克隆版——Dalvik虚拟机。因此,需要第三方库如JDBC-ODBC桥接或特定数据库的JDBC驱动(如jTDS)来实现这个功能。 在Android应用...

    geoserver-2.15-SNAPSHOT-gwc-sqlite-plugin.zip

    在本例中,我们关注的是GeoServer的一个特定插件——"gwc-sqlite-plugin",这是针对GeoServer的全球瓦片缓存(Global Web Coverage Service, GWC)功能的SQLite扩展。 GeoServer的GWC功能允许高效地存储和分发地理...

    android数据库开发

    在Windows平台上有一个由David Crawshaw编写的`sqlitejdbc-v056.jar`驱动,但由于该驱动包含了本地代码且需要转换为适用于Dalvik虚拟机的DEX格式,因此无法直接在Android环境中使用。此外,该驱动文件体积较大,不...

    Android 开发中使用 SQLite 数据库

    相较于传统数据库接口JDBC可能带来的资源开销,Android提供了专门的API来操作SQLite,更加适合内存受限的移动设备。应用程序的数据库文件通常存储在`data/<项目文件夹>/databases/`目录下。 #### 在Android中使用...

    SQLite的小例子--备忘录

    这个小例子——“SQLite的小例子--备忘录”旨在介绍如何在编程中使用SQLite来实现一个简单的备忘录功能。SQLite是开源的,不需要单独的服务进程,可以直接将数据存储在文件中,方便集成到各种应用程序中。 首先,...

    SuperMap Objects Java关联SQLite及Excel制作专题图

    在Java环境下,我们可以使用SQLite-JDBC驱动程序来连接和操作SQLite数据库。通过JDBC(Java Database Connectivity)接口,开发者可以编写SQL查询来获取、插入或更新数据库中的数据。 接着,Excel文件常用于存储和...

    安卓Android源码——通过jdts.jar连接SQLSEVER2008.zip

    在实际开发中,更推荐使用Android官方支持的数据库如SQLite,或者使用其他针对Android优化的JDBC驱动,如jTDS,或者通过RESTful API等方式与后端数据库通信。 在使用这个源码示例时,记得检查jdts.jar是否兼容你的...

    嵌入式数据库SQLite入门与分析(1-9).

    无论是编程语言还是脚本语言,甚至是ODBC/JDBC接口,最终都需要通过SQLite C API来与数据库进行通信。 2. **编译器(Compiler)**:这一部分负责将SQL查询语句解析并转换为内部可以处理的数据结构——语法树。具体...

    图书馆信息管理系统——数据库课程设计(含源码和设计报告).rar

    这个系统是使用Java编程语言,具体是利用Java的Swing组件来创建图形用户界面(GUI),并与SQLite本地数据库进行交互,无需依赖外部服务器。 在数据库课程设计中,这个项目涵盖了多个关键知识点: 1. **Java Swing*...

    数据库课程设计——图书管理系统

    数据库课程设计——图书管理系统是一项常见的IT实践项目,旨在让学生深入理解和掌握数据库管理和Web应用程序开发的基本原理。这个项目包括两个版本:一个基于图形用户界面(GUI)的系统和一个基于浏览器/服务器(B/S...

    jCrontab-三种数据源完美结合演示(数据库为SQLite)

    《jCrontab与SQLite数据库的完美融合——构建高效定时任务系统》 jCrontab是一款在Java环境中广泛使用的任务调度库,它以其灵活性和强大的功能,深受开发者喜爱。本文将深入探讨如何利用jCrontab与SQLite数据库进行...

    sqlcipher-3.4.0

    4. **兼容性**:确保与SQLite 3.11.0的API兼容,这意味着大多数SQLite的使用方式在SqlCipher中仍然有效。 5. **跨平台**:SqlCipher支持多种操作系统,包括Windows、Linux、macOS、iOS和Android等,方便在各种环境...

    DataBasePractice

    【标题】"数据库实践——SQLite与Java的结合应用" 【正文】 在信息技术领域,数据库是存储和管理数据的核心工具。本项目"DataBasePractice"聚焦于数据库的实际应用,特别是在Java环境中利用SQLite数据库进行数据...

    用户管理系统——java

    Java通过JDBC(Java Database Connectivity)提供与各种数据库的接口,如MySQL、SQLite等。开发者需要编写SQL语句进行增删改查操作,处理用户数据。 6. **面向对象设计** 用户管理系统中的每个功能模块,如用户...

    安卓Andriod源码——通过jdts.jar连接SQLSEVER2008.zip

    在实际项目中,考虑到性能和用户体验,通常会使用像SQLite这样的本地数据库来缓存数据,或者利用像Room Persistence Library这样的库进行数据管理。对于远程数据库操作,可以采用异步任务(AsyncTask)、Retrofit库...

    初级java程序员练习项目2——问卷调查

    - JDBC(Java Database Connectivity):连接并操作数据库,如MySQL或SQLite,以存储用户提交的问卷数据。了解如何执行SQL查询、插入、更新和删除数据。 8. **多线程**: - 在用户提交问卷后,可能需要在后台进行...

Global site tag (gtag.js) - Google Analytics