当前位置: Sqlite教程 > 02-java与sqlite > 阅读正文

java简单操作sqlite数据库

2021.5.17.   1078 次   3192字

本节我们使用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);
        }
    }

}

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群