前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第一次和SQLite接触

第一次和SQLite接触

作者头像
IT小马哥
发布2020-03-18 12:37:20
5000
发布2020-03-18 12:37:20
举报
文章被收录于专栏:Java TaleJava Tale

第一次使用SQlite.


如此神奇的数据库...

-----------------来自小马哥的故事


要使用java程序连接SQLite,并与SQLite进行数据存取操作,必须在系统上设置SQLite JDBC驱动程序和安装Java JDK。按照以下步骤进行:

  • 从sqlite-jdbc存储库下载最新版本的 ***sqlite-jdbc-(VERSION).jar***。
  • 将下载的jar文件添加到类路径。
  • 使用java连接到SQLite数据库。

连接到SQLite数据库

打开Eclipse IDE,创建一个JAVA工程:JavaWithSQLite,下载所需的sqlite-jdbc-(VERSION).jar(下载地址: http://bitbucket.org/xerial/sqlite-jdbc/downloads/ 或者 http://mvnrepository.com/artifact/org.xerial/sqlite-jdbc ),并将它放入到项目的类库中。

使用以下代码使用Java编程语言连接到SQLite数据库,首先创建一个类:ConnectSQLite.java,其代码如下所示 -

代码语言:javascript
复制
package cn.maruifu.sqlite;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectSQLite {
    /**
     * Connect to a sample database
     */
    public static void connect() {
        Connection conn = null;
        try {
            // db parameters
            String url = "jdbc:sqlite:D:/sqlite/java-sqlite.db";
            // create a connection to the database
            conn = DriverManager.getConnection(url);

            System.out.println("Connection to SQLite has been established.");

        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }

    /**
     * @param args
     *            the command line arguments
     */
    public static void main(String[] args) {
        connect();
    }
}

执行上面代码后,会创建一个文件:D:/sqlite/java-sqlite.db,并与数据库java-sqlite.db连接。

使用java创建数据库

还可以使用java编程语言在SQLite中创建一个新的数据库。假设要使用Java来创建一个名为java_sqlite.db的数据库。创建一个公共类:CreateDB.java并使用以下代码:

代码语言:javascript
复制
package cn.maruifu.sqlite;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;

public class CreateDB {

    public static void createNewDatabase(String fileName) {

        String url = "jdbc:sqlite:" + fileName;

        try {
            Connection conn = DriverManager.getConnection(url);
            if (conn != null) {
                DatabaseMetaData meta = conn.getMetaData();
                System.out.println("The driver name is " + meta.getDriverName());
                System.out.println("A new database has been created.");
            }

        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }

    public static void main(String[] args) {
        createNewDatabase("D:/sqlite/create-db.db");
    }
}

执行上面代码,得到以下结果 -

代码语言:javascript
复制
The driver name is SQLiteJDBC
A new database has been created.

现在创建一个名为“create-db.db”的新数据库。可以看到对应创建目录有一个文件:create-db.db存在。

使用java创建一个表

假设要通过Java程序在SQLite中创建一个名为tb_emp的表,tb_emp表具有id,name和capacity这三列。首先创建一个Java类:CreateTable.java,并使用以下代码

代码语言:javascript
复制
package cn.maruifu.sqlite;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class CreateTable {

    public static void createNewTable() {
        // SQLite connection string
        String url = "jdbc:sqlite:D:/sqlite/java-sqlite.db";

        // SQL statement for creating a new table
        String sql = "CREATE TABLE IF NOT EXISTS employees (\n" + " id integer PRIMARY KEY,\n"
                + " name text NOT NULL,\n" + " capacity real\n" + ");";

        try {
            Connection conn = DriverManager.getConnection(url);
            Statement stmt = conn.createStatement();
            stmt.execute(sql);
            System.out.println("Create table finished.");
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }

    /**
     * @param args
     *            the command line arguments
     */
    public static void main(String[] args) {
        createNewTable();
    }

}

执行上面代码,得到以下结果 -

代码语言:javascript
复制
Create table finished.

执行上面代码后,将在java-sqlite.db数据库中创建一个名称为:employees 的表。

向表中插入记录

创建表后,使用以下代码在表中插入一些记录。 创建一个新的Java类:InsertRecords,具有以下代码:

代码语言:javascript
复制
package cn.maruifu.sqlite;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class InsertRecords {

    private Connection connect() {
        // SQLite connection string
        String url = "jdbc:sqlite:D:/sqlite/java-sqlite.db";
        Connection conn = null;
        try {
            conn = DriverManager.getConnection(url);
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
        return conn;
    }

    public void insert(String name, double capacity) {
        String sql = "INSERT INTO employees(name, capacity) VALUES(?,?)";

        try {
            Connection conn = this.connect();
            PreparedStatement pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, name);
            pstmt.setDouble(2, capacity);
            pstmt.executeUpdate();
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }

    public static void main(String[] args) {

        InsertRecords app = new InsertRecords();
        // insert three new rows
        app.insert("Maxsu", 30000);
        app.insert("Minsu", 40000);
        app.insert("Miswong", 50000);
        System.out.println("Insert data finished.");
    }

}

现在记录被插入到表中。 可以使用SELECT命令查看它:

!!!表中插入记录 是用客户端navicat 查询.

查询/选择记录

要使用Java程序从表中选择/查询记录,请使用以下代码。 创建一个新的Java类 - SelectRecords.java,使用以下代码 -

代码语言:javascript
复制
package cn.maruifu.sqlite;

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class SelectRecords {

    private Connection connect() {
        // SQLite connection string
        String url = "jdbc:sqlite:D:/java-sqlite.db";
        Connection conn = null;
        try {
            conn = DriverManager.getConnection(url);
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
        return conn;
    }

    public void selectAll() {
        String sql = "SELECT * FROM employees";

        try {
            Connection conn = this.connect();
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);

            // loop through the result set
            while (rs.next()) {
                System.out.println(rs.getInt("id") + "\t" + rs.getString("name") + "\t" + rs.getDouble("capacity"));
            }
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }

    /**
     * @param args
     *            the command line arguments
     */
    public static void main(String[] args) {
        SelectRecords app = new SelectRecords();
        app.selectAll();
    }

}

执行上面代码,得到以下结果 -

本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: 2017/11/23 09:18

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一次使用SQlite.
    • 连接到SQLite数据库
      • 使用java创建数据库
        • 使用java创建一个表
          • 向表中插入记录
            • 查询/选择记录
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档