当前位置:   article > 正文

Java开发工程师必备技能——JDBC快速入门+程序案例(IDEA 2020)

Java开发工程师必备技能——JDBC快速入门+程序案例(IDEA 2020)

Java开发工程师必备技能——JDBC快速入门+程序案例(IDEA 2020)

JDBC是什么?

JDBC API是一个Java API,允许用户访问各种类型表列数据,尤其是存储在关系型数据库中的数据。

执行流程:

1.连接数据源,如:数据库。

2.为数据库传递查询和更新指令。

3.处理数据库响应并返回的结果。

JDBC环境配置

先完成以下设置:

JAVA(JDK)安装

数据库系统的安装(如:MySQL的安装)

注:笔者本篇文章使用的是jdk1.8+MySQL8.0。

除了上诉环境配置外,还需要建立一个数据库。本篇文章创建的数据库:mydb,在这个数据库上创建一张表:tb_user。

在IDEA环境导入jar包:
在这里插入图片描述

创建JDBC应用程序

建立一个JDBC应用程序,本文以Java连接MySQL为例,分六个步骤进行:

1.导入包

在程序中包含数据库编程所需的JDBC类。大多数情况下可用import java.sql.*,即包含所有有关sql操作的类。

//第一步:导入包
import java.sql.*;
  • 1

2.加载JDBC(MySQL)驱动程序:

//加载JDBC(MySQL)驱动程序
            Class.forName("com.mysql.jdbc.Driver");
  • 1

3.获取数据库连接

使用DriverManager.getConnection()方法获取一个数据库连接,赋值给Connection创建的对象,如下所示:

static final String DB_URL = "jdbc:mysql://localhost/mydb";
static final String USER = "root";
static final String PASSWORD = "root";
Connection conn = null;
conn = DriverManager.getConnection(DB_URL,USER,PASSWORD);
  • 1
  • 2
  • 3
  • 4

4.执行查询

创建StatementPreparedStatement对象,提交一个查询:

Statement stmt = null;
stmt = conn.createStatement();
String sql;
sql = "SELECT id, name , sex, age FROM tb_user";
ResultSet rs = stmt.executeQuery(sql);
  • 1
  • 2
  • 3
  • 4

5.提取查询到的数据

从数据库中获取查询结果中的数据,可以使用合适的ResultSet.getXXX()的方法来检索数据:

while(rs.next()){
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String sex = rs.getString("sex");
                int age = rs.getInt("age");
				//打印数据
                System.out.println("ID: "+ id +",NAME: "+name + ",SEX: " + sex +",AGE: "+age);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

6.清理环境资源

在使用JDBC与数据交互操作数据库后,应明确关闭所有数据库资源以减少资源的浪费:

rs.close();
stmt.close();
conn.close();
  • 1
  • 2

完整程序案例代码如下:

package jdbctest;
//第一步:导入包
import java.sql.*;

public class QueryTest {
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC";
    static final String USER = "root";
    static final String PASSWORD = "root";

    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try {
            //第二步:加载JDBC(MySQL)驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            //第三步:获取数据库连接
            conn = DriverManager.getConnection(DB_URL,USER,PASSWORD);
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT id, name , sex, age FROM tb_user";
            //第四步:执行查询
            ResultSet rs = stmt.executeQuery(sql);

            while(rs.next()){
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String sex = rs.getString("sex");
                int age = rs.getInt("age");
				//第五步:打印数据
                System.out.println("ID: "+ id +",NAME: "+name + ",SEX: " + sex +",AGE: "+age);
            }
            //第六步:关闭资源
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException se) {
            se.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try{
                if(stmt!=null)
                    stmt.close();
            }catch(SQLException se2){
            }
            try{
                if(conn!=null)
                    conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

运行结果如下:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/658662
推荐阅读
相关标签
  

闽ICP备14008679号