位置:首页 > Java > 如何实现第一个JDBC程序入门教程

如何实现第一个JDBC程序入门教程

时间:2026-08-16  |  作者:多维游侠  |  阅读:0

熟悉了JDBC的编程步骤后,接下来通过一个案例演示JDBC的使用。 此案例会从tb_user表中读取数据,并将结果打印在控制台。

需要说明的是,Ja va中的JDBC是用来连接数据库从而执行相关数据相关操作的。因此在使用JDBC时,一定要确保安装有数据库。

常用的关系型数据库有MySQL和Oracle。本书就以连接MySQL数据库为例,使用JDBC执行相关操作。

案例实现步骤

案例的具体实现步骤如下:

  • 搭建数据库环境
  • 创建项目环境,导入数据库驱动
  • 编写JDBC程序

(1)搭建数据库环境

在MySQL数据库中创建一个名称为jdbc的数据库,然后在该数据库中创建一个名称为tb_user的表。创建数据库和表的SQL语句如下:

CREATE DATABASE jdbc;
USE jdbc;
CREATE TABLE tb_user(
        id INT PRIMARY KEY AUTO_INCREMENT,
        NAME VARCHAR(40),
        sex VARCHAR(2),    
        email VARCHAR(60),
        birthday DATE        
);

上述创建tb_user表时添加了id、NAME、sex、email和birthday共5个字段。

其中,NAME字段名称为大写形式。这是因为name字段在MySQL数据库中属于关键字,所以为了方便区分,这里将name字段名称全部用大写表示。

数据库和表创建成功后,再向tb_user表中插入3条数据。插入的SQL语句如下所示:

INSERT INTO tb_user(NAME,sex,email,birthday) 
VALUES ('Jack','男','jack@126.com','1980-01-04'),
('Tom','男','tom@126.com','1981-02-14'),
('Lucy','女','lucy@126.com','1979-12-28');

为了查看数据是否添加成功,使用SELECT语句查询tb_user表中的数据,执行结果如图1所示。

如何实现第一个JDBC程序入门教程_wishdown.com

图1 tb_user表中的数据

注意:

数据库和表都建好之后,如果是通过命令行窗口往tb_user表里插入包含中文的数据,往往会遇到两个典型问题:插入时报错,或者查询出来的中文显示成乱码。

根源其实不复杂——MySQL数据库默认采用的是UTF-8编码,而命令行窗口默认走的是GBK编码。两边编码不一致,带中文的插入语句在解析时就很容易出问题。

要想在命令行窗口里正常写入中文、也能正确查询中文内容,做法并不麻烦:在执行插入语句和查询语句之前,先在命令行窗口执行下面这两条命令即可:

set character_set_client=gbk;
set character_set_results=gbk;

执行完上述两条命令后,再次在命令行窗口执行插入和查询操作就不再出现乱码问题了。

(1)创建项目环境,导入数据库驱动

在Eclipse中新建一个名称为chapter09的Ja va项目,使用鼠标右键单击项目名称,然后选择【New】→【Folder】。

在弹出窗口中将该文件夹命名为lib并单击【Finish】按钮,此时项目根目录中就会出现一个名称为lib的文件夹。

将下载好的MySQL数据库驱动文件Jar包(mysql-connector-ja va-5.1.46-bin.jar)复制到项目的lib目录中,并使用鼠标右击该JAR包,在弹出框中选择【Build Path】→【Add to Build Path】。此时Eclipse会将该JAR包发布到类路径下。

加入驱动后的项目结构如图2所示。

如何实现第一个JDBC程序入门教程_wishdown.com

其中,MySQL驱动文件可以在其官网地址:http://dev.mysql.com/downloads/connector/j/页面中下载。

单击页面Platform Independent (Architecture Independent), ZIP Archive后的“Download”按钮,并在新打开的窗口中的单击 “No thanks, just start my download”超链接后即可下载驱动压缩包(本书编写时的最新驱动版本文件是mysql-connector-ja va-5.1.46.zip),解压后即可得到相应JAR包。

(1)编写JDBC程序

在项目chapter09的src目录下,新建一个名称为com.itheima.jdbc的包,并在该包中创建类Example01。

在该类读取数据库中的tb_user表,并将结果输出到控制台,如文件1所示。

文件1 Example01.ja va

 1    import ja va.sql.*;
 2    public class Example01 {
 3        public static void main(String[] args) throws SQLException  {
 4            Connection conn =null;
 5            Statement stmt =null;
 6            ResultSet rs =null;
 7            try {
 8                // 1. 加载数据库驱动
 9                Class.forName("com.mysql.jdbc.Driver");
 10                // 2.通过DriverManager获取数据库连接
 11                String url = "jdbc:mysql://localhost:3306/jdbc";
 12                String username = "root";
 13                String password = "root";
 14                conn = DriverManager.getConnection(url,username, password);
 15                // 3.通过Connection对象获取Statement对象
 16                stmt = conn.createStatement();
 17                // 4.使用Statement执行SQL语句
 18                String sql = "select * from tb_user";
 19                rs = stmt.executeQuery(sql);
 20                // 5. 操作ResultSet结果集
 21                System.out.println("id    |    name      |    sex  "
 22                                    + "   |    email        |    birthday ");
 23                while (rs.next()) {
 24                    int id = rs.getInt("id");    // 通过列名获取指定字段的值
 25                    String name = rs.getString("name");
 26                    String sex = rs.getString("sex");
 27                    String email = rs.getString("email");
 28                    Date birthday = rs.getDate("birthday");
 29                    System.out.println(id + "    |    " + name + "    |    "
 30                               + sex + "    |    " + email + "    |    " + birthday);
 31                }
 32            } catch (Exception e) {
 33                e.printStackTrace();
 34            } finally {
 35                // 6.关闭连接,释放资源
 36                if(rs !=null){ rs.close(); }
 37                if(stmt !=null){ stmt.close(); }
 38                if(conn !=null){ conn.close(); }
 39            }
 40        }
 41    }

运行结果如图3所示。

如何实现第一个JDBC程序入门教程_wishdown.com

图3 运行结果

程序执行流程说明

在文件1里,先完成了MySQL数据库驱动的注册,随后通过DriverManager拿到一个Connection对象。

有了这个连接之后,再由Connection创建出Statement对象。接着,Statement通过executeQuery(String sql)方法执行SQL语句,并返回对应的结果集ResultSet。

再往下,就是遍历ResultSet,取出查询结果并输出。整个流程走完后,最后一步是关闭连接,把相关的数据库资源一并释放掉。

从图3中可以看到,tb_user表中的数据已被打印在了控制台。至此第一个JDBC程序实现成功。

小提示

在进行数据库连接时,连接MySQL数据库的username和password都要与创建MySQL数据库时设置的登录账户一致,否则登录失败。

本章以及后续案例都默认MySQL数据库登录的username和password都为“root”。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多