一、建立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接口。
- Connection接口代表与特定的数据库的连接,在连接上下文中执行SQL语句并返回结果。
- Statement接口用于在已建立的基础上向数据库发送SQL语句。
- 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();
}
}
}
运行结果: