本节我们使用maven环境演示java创建sqlite数据库,表, 插入数据以及查询
环境准备
首先, 我们需要使用 idea, + maven 环境, 当然其他环境其实效果一样,
由于 sqlite 不被主流数据库连接池支持, 我们不使用数据库连接池
只需要导入 sqlite 的坐标即可
<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.31.1</version>
</dependency>
封装JDBCUtils
由于涉及到多次操作sql, 故进行简单封装一下, 先写一个配置信息jdbc.properties
driver=org.sqlite.JDBC
url=jdbc:sqlite:user.db
由于创建数据库时, 只需要连接即可, 数据库不存在时自动创建, 这里也封装进去
package util;
import java.io.FileReader;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
public class JDBCUtils {
private static String driver;
private static String url;
//静态字符块,自动加载资源文件
static {
//获取src路径下的文件的方式--->ClassLoader 类加载器
ClassLoader classLoader = JDBCUtils.class.getClassLoader();
//获取资源对象(得到一个 url 对象)
URL res = classLoader.getResource("jdbc.properties");
//得到资源真实路径
String path = res.getPath();
//创建Properties类型的对象
Properties p =new Properties();
try {
//加载资源文件
p.load(new FileReader(path));
driver = p.getProperty("driver");
url = p.getProperty("url");
} catch (Exception e) {
e.printStackTrace();
}
}
//创建数据库
public static void CreaDB(){
Connection c = null;
try {
Class.forName(driver);
c = DriverManager.getConnection(url);
} catch ( Exception e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
System.exit(0);
}
System.out.println("创建数据库"+url+"成功");
}
//获得连接对象的方法
public static Connection getConnection() {
try{
return DriverManager.getConnection(url);
}
catch(Exception e) {
e.printStackTrace();
}
return null;
}
//释放连接资源
public static void close(Connection conn, Statement statement,ResultSet result) {
try {
if(result!=null) {
result.close();
result=null;
}
if(statement!= null) {
statement.close();
statement=null;
}
if(conn!=null) {
conn.close();
conn=null;
}
}
catch(Exception e) {
e.printStackTrace();
}
}
}
测试java代码
写一个class名为 SQLite_Test, 并复制粘贴如下代码进行测试
先符上效果图
import util.JDBCUtils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class SQLite_Test {
public static void main(String[] args) {
CreateDB();
CreateTable();
Insert();
Select();
}
// 创建数据库
public static void CreateDB(){
JDBCUtils.CreaDB();
}
// 创建表
public static void CreateTable(){
Connection conn = null;
Statement stmt = null;
try {
conn = JDBCUtils.getConnection();
stmt = conn.createStatement();
String sql = "create table user(" +
"uname text ," +
"pwd text " +
")";
stmt.executeUpdate(sql);
JDBCUtils.close(conn,stmt,null);
} catch ( Exception e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
System.exit(0);
}
System.out.println("数据库表创建成功");
}
// 插入数据
public static void Insert(){
Connection conn = null;
Statement stmt = null;
int Result = 0;
try {
conn = JDBCUtils.getConnection();
stmt = conn.createStatement();
String sql = "insert into user values('张三','123'),('李四','456')";
Result = stmt.executeUpdate(sql);
JDBCUtils.close(conn,stmt,null);
} catch ( Exception e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
System.exit(0);
}
System.out.println("插入数据"+Result);
}
// 查询数据
public static void Select(){
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = JDBCUtils.getConnection();
stmt = conn.createStatement();
String sql = "select * from user";
rs = stmt.executeQuery(sql);
while (rs.next()){
String uname = rs.getString("uname");
String pwd = rs.getString("pwd");
System.out.println("用户名"+uname+",密码"+pwd);
}
} catch ( Exception e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
JDBCUtils.close(conn,stmt,rs);
}
}
}