Java读取SQLite数据库中的表

一、建立Java与SQLite数据库之间的连接

1. JDBC概述:
    JDBC全称是Java DataBase Connectivity。JDBC是一种可用于执行SQL语句的Java API(Application Programming Interface,应用程序接口),是连接数据库和Java应用程序的纽带。

2. SQLite-JDBC路径构建

2.1 下载sqlite-jdbc驱动
    [下载地址] (https://bitbucket.org/xerial/sqlite-jdbc/downloads/)

2.2 在Eclipse中添加sqlite-jdbc.jar,具体操作如下所示:
    选中java项目右键 ⟶ 点击“构建路径” ⟶ 点击“配置构建路径” ⟶ 点击“添加外部JAR”,找到sqlite-jdbc.jar后,打开 ⟶ 点击“Apply and Close”。
图一
2.3 将建立好的数据库文件(后缀为.db)复制到包文件夹内
图二
2.4连接数据库
    连接数据库主要用到DriverManager类,DriverManager类用来管理数据库中的所有驱动程序。他是JDBC的管理层,作用于用户和驱动程序之间,跟踪可用的驱动程序,并在数据库的驱动程序之间建立连接。如果通过getConnection()方法可以建立连接,则经连接返回,否则抛出SQLException异常。
    通常使用DriverManager类中的getConnection(String url, String user, String password)方法。
    连接数据库的Java程序如下:

package sql;

import java.sql.*;       //导入java.sql包

public class Conn {      //创建类Conn
    connertion con;      //声明Connection对象
    public Connection getConnection(){    //建立返回值为Connection的方法
        try {                             //加载数据库驱动
            Class.forName("org.sqlite.JDBC");
            System.out.println("数据库驱动加载成功");
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }
        try {                 //通过访问数据库的URL获取数据库连接对象
            con=DriverManager.getConnection("jdbc:sqlite:person.db");
            System.out.println("数据库连接成功");
            System.out.print('\n');
        }catch(SQLException e) {
            e.printStackTrace();
        }
        return con;           //按方法要求放回一个Connection对象
    }

二、在SQLite数据库中创建一张“表”

    在SQLite Exoert professional软件中有两种方法可以创建表,一种是利用Design创建,另外一种是直接使用SQL语句创建。

方法一:利用Design创建
    1. 选中数据库右键,点击“New Table” ⟶ 2. 添加列:点击“Design”,点击“Insert”,在弹出的对话框内设置Columns属性 ⟶ 3. 设置主键:点击“Primary Key”,点击“Insert”,在下拉菜单中选择需要设置为主键的列名 ⟶ 4. 如需要继续设置索引、触发等条件可以继续在后面的选项中添加 ⟶ 5. 点击“General”,输入Table Name,点击“Apply” ⟶ 6. 添加数据:点击“Data”,点击“+”,选中列名右键,点击“Record Editor”,输入内容。
图
方法二:利用SQL语句创建
例如:

/*创建表名为"information"的表结构*/
create table information(id integer not null primary key, '姓名' text not null, '性别' text not null, '年龄' integer not null);
/*在表中添加数据*/
insert into information('姓名','性别','年龄') values('张三','男',23),('李四','女',18),('王五','男',20),('赵六','男',25);
/*查询information表中的数据*/
select * from information;
三、用Java读出数据库中表的内容

    在成功建立Java与SQLite数据库的连接后,便可以查询、操作数据库中的表,主要用到JDBC中的三个接口,分别是Connection接口、Statement接口、ResultSet接口。

  1. Connection接口代表与特定的数据库的连接,在连接上下文中执行SQL语句并返回结果。
  2. Statement接口用于在已建立的基础上向数据库发送SQL语句。
  3. ResultSet接口类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集。

    读取表数据的Java程序:
package sql;

import java.sql.*;       //导入java.sql包

public class Gradation {
    static Connection con;     //声明Connection对象
    static Statement sql;      //声明Statement对象
    static ResultSet res;      //声明ResultSet对象
    public Connection getConnection(){    //建立返回值为Connection的方法
        try {                             //加载数据库驱动
            Class.forName("org.sqlite.JDBC");
            System.out.println("数据库驱动加载成功");
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }
        try {                 //通过访问数据库的URL获取数据库连接对象
            con=DriverManager.getConnection("jdbc:sqlite:person.db");
            System.out.println("数据库连接成功");
            System.out.print('\n');
        }catch(SQLException e) {
            e.printStackTrace();
        }
        return con;           //按方法要求放回一个Connection对象
    }
    public static void main(String[] args) {
        Gradation c = new Gradation();       //创建本类对象
        con =c.getConnection();              //与数据库建立连接
        try {
            sql = con.createStatement();     //实例化Statement对象
            res = sql.executeQuery("select * from information");
            System.out.print("编号");
            System.out.print(' ');
            System.out.print('|');
            System.out.print(' ');
            System.out.print("姓名");
            System.out.print(' ');
            System.out.print('|');
            System.out.print(' ');
            System.out.print("性别");
            System.out.print(' ');
            System.out.print('|');
            System.out.print(' ');
            System.out.print("年龄");
            System.out.print('\n');
            while(res.next()) {        //如果当前语句不是最后一条,则进入循环
                String id = res.getString("id");   //获取id字段值
                String name = res.getString("姓名");  //获取“姓名”字段值
                String sex = res.getString("性别");   //获取“性别”字段值
                String age = res.getString("年龄");   //获取“年龄”字段值

                System.out.print(' ');
                System.out.print(id);     //输出获取到的字段值
                System.out.print(' ');
                System.out.print('|');
                System.out.print(' ');
                System.out.print(name);
                System.out.print(' ');
                System.out.print('|');
                System.out.print(' ');
                System.out.print(sex);
                System.out.print(' ');
                System.out.print(' ');
                System.out.print(' ');
                System.out.print(' ');
                System.out.print(' ');
                System.out.print('|');
                System.out.print(' ');
                System.out.print(age);
                System.out.print('\n');
            }
        }catch(SQLException e) {
            e.printStackTrace();
        }
    }
}

运行结果:
图五

猜你喜欢

转载自blog.csdn.net/yga_airspace/article/details/80275447