使用 JDBC 连接 MySQL 数据库并进行数据查询操作

2017-10-30

接上一篇文章(利用 Java io 包进行文件读写操作),在这里我将总结使用 JDBC 连接 MySQL 数据库,并进行数据查询操作的方法


场景

使用 JDBC 连接数据库查询数据,返回到前端,前端再使用 JS 插件对数据进一步操作。

考察知识点

  • JDBC 连接
  • 给出插件的 API,考察当场学习新知识的速度

数据

我使用数据库是 cjl_demo,查询的表是 stu,该表下有数据:

首先给出代码示例

我也将代码托管在码云平台,可以前往参考:https://gitee.com/jinglun404/jdbc-demo

 1 import java.sql.*;
 2 
 3 /**
 4  * 使用JDBC查询mysql数据库示例
 5  */
 6 public class Main {
 7 
 8     public static void main(String[] args) {
 9 
10         try {
11             // 1.反射获取mysql驱动实例
12             Class.forName("com.mysql.jdbc.Driver");
13         } catch (ClassNotFoundException e) {
14             System.out.println("找不到驱动程序类,加载驱动失败!");
15             e.printStackTrace();
16         }
17 
18         String url = "jdbc:mysql://localhost:3306/cjl_demo";
19         String username = "username";
20         String password = "password";
21         try {
22             // 2.驱动实例->Connection
23             Connection conn = DriverManager.getConnection(url, username, password);
24 
25             // 3.Connection->Statement
26             Statement stmt = conn.createStatement();
27 
28             // 4.Statement->ResultSet
29             String sql = "select * from stu";
30             ResultSet rs = stmt.executeQuery(sql);
31 
32             // 5.通过ResultSet获取数据
33             while (rs.next()) {
34                 String id = rs.getString("id");
35                 String name = rs.getString("name");
36                 String score = rs.getString("score");
37                 String sex = rs.getString("sex");
38                 String theClass = rs.getString("class");
39                 System.out.println(id + "--" + name + "--" + score + "--" + sex + "--" + theClass);
40                 /**
41                  * 1--a--66--男--1
42                  * 2--b--82--女--2
43                  * 3--c--77--男--1
44                  * 4--d--90--女--2
45                  * 5--e--90--女--1
46                  */
47             }
48 
49             // 6.依次关闭ResultSet,Statement,Connection
50             if (rs != null) {
51                 try {
52                     rs.close();
53                 } catch (SQLException e) {
54                     System.out.println("ResultSet关闭时出现错误!");
55                     e.printStackTrace();
56                 }
57             }
58             if (stmt != null) {
59                 try {
60                     stmt.close();
61                 } catch (SQLException e) {
62                     System.out.println("Statement关闭时出现错误!");
63                     e.printStackTrace();
64                 }
65             }
66             if (conn != null) {
67                 try {
68                     conn.close();
69                 } catch (SQLException e) {
70                     System.out.println("Connection关闭时出现错误!");
71                     e.printStackTrace();
72                 }
73             }
74 
75         } catch (SQLException e) {
76             System.out.println("数据库连接失败!");
77             e.printStackTrace();
78         }
79     }
80 }

说明

先来看一张图,这张图总结了使用 JDBC 连接数据库操作的过程

不难理解,JDBC 连接数据库并进一步操作,步骤可大致总结为:

  1. 导入相应数据库的驱动包
  2. 通过反射加载相应数据库驱动实例
  3. 有 DriverManager 获取 Connection 实例
  4. 通过 Connection 实例获取 Statement 实例
  5. 通过 Statement 实例操作数据库,并返回 ResultSet
  6. 通过 ResultSet 获取查询的数据
  7. 依次关闭 ResultSet、Statement、Connection

注意

我在上面的总结中,总结的是使用 JDBC 查询的操作,当然,除此之外,还可以利用 JDBC 进行插入数据、更新数据操作。

而这不同操作的区别在于使用不同的 Statement 方法:

  1. ResultSet executeQuery(String sqlString):执行查询数据库的 SQL 语句,返回一个结果集(ResultSet)对象。
  2. int executeUpdate(String sqlString):用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL 语句,如:CREATE TABLE 和 DROP TABLE 等,返回操作影响的行数。 
  3. boolean execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句,返回一个 boolean 值。

 

参考网站

http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html

http://www.cnblogs.com/lee/archive/2007/08/25/869656.html

 

转载于:https://www.cnblogs.com/cjl21/p/7753868.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值