Java基础-数据库操作

数据库操作是程序开发过程中的基本操作。本文以最常见的两种数据库:SQlite和Mysql为例,解释使用java完成数数据库的读操作。

数据准备:使用Docker启动Mysql容器,DBeaver连接数据库,创建数据库并准备测试数据。

1、Mysql操作

使用IDEA 创建一个普通的Java项目,结构如下:

一般而言,在实际开发中不会将数据库配置信息直接放在代码中,这样难以维护。通常的做发是将数据库连接的配置信息放在一个配置文件中,然后通过读取配置文件来获取数据库连接的配置信息。

因此具体的步骤为:

  • 在项目目录下创建一个后缀为.properties的文件;
  • 将配置信息:数据库驱动名称、数据库连接的URL、用户名、密码等信息放在该配置文件中
    #数据库驱动名称
    db.driver=com.mysql.cj.jdbc.Driver
    
    # 数据库连接URL
    db.curl=jdbc:mysql://localhost:3306/Binary
    
    # 数据库用户名
    db.username=root
    
    # 数据库密码
    db.password=1234@qwer
    
  • 在代码中使用java.util.Properties类读取配置文件,连接数据库
  • 完成数据读写操作

示例代码:

package org.blackwin;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;

public class Main {
    public static void main(String[] args) throws IOException, SQLException, ClassNotFoundException {

        //get config of mysql
        Properties properties = new Properties();
        properties.load(new FileInputStream("sql.properties"));
        String dbDriver = properties.getProperty("db.driver");
        String url = properties.getProperty("db.curl");
        String user = properties.getProperty("db.username");
        String password = properties.getProperty("db.password");

        System.out.println(dbDriver);
        System.out.println(url);
        System.out.println(user);
        System.out.println(password);

        //connect to mysql
        Class.forName(dbDriver);
        Connection  conn  = DriverManager.getConnection(url,user,password);

        //read data from mysql
        //sql语句中不带参数
        //        String sql = "select * from binary_modules";
        //        PreparedStatement  stmt = conn.prepareStatement(sql);
        //        ResultSet rs = stmt.executeQuery(sql);
        //
        //        while (rs.next()){
        //            String license = rs.getString("license");
        //            String vendor = rs.getString("vendor");
        //            String product = rs.getString("product");
        //            System.out.println(license+" "+vendor+" " + product);
        //        }

        //sql语句中带参数
        String sql = "select * from binary_modules where `vendor` = ? and `version`= ? ";
        PreparedStatement stmt =  conn.prepareStatement(sql);
        stmt.setString(1, "openssl");
        stmt.setString(2,"OpenSSL 1.1.1u");
        ResultSet rs = stmt.executeQuery(sql);
        while (rs.next()){
            String des = rs.getString("describe");
            String language = rs.getString("language");
            System.out.println(des+" "+language);
        }

        System.out.println("connect to mysql succeed");

    }
}

2、Sqlite操作

同理,连接SQLite需要Sqlite的驱动程序,这里使用另外一种方式。在Java项目的pom.xml文件中添加驱动的依赖,让IDEA自己下载驱动。

 <dependencies>
  <dependency>
      <groupId>org.xerial</groupId>
      <artifactId>sqlite-jdbc</artifactId>
      <version>3.21.0.1</version>
  </dependency>

IDEA 自动下载的Sqlite的驱动程序:

连接Sqlite的代码示例:

Connection conn = null;
try{
    String url = "jdbc:sqlite:binary.db"; 
    Class.forName("org.sqlite.JDBC");  //注意⚠️这里使用sqlite的驱动程序名称。
    conn = DriverManager.getConnection(url);
    System.out.println("connect sqlite db success");


} catch (ClassNotFoundException | SQLException e) {
    throw new RuntimeException(e);
}
posted @ 2024-02-25 11:55  丘山996  阅读(29)  评论(0)    收藏  举报