Java高手速成│编写你第一个数据库程序

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Java高手速成│编写你第一个数据库程序

数据库编程是Java应用软件开发中不可或缺的组成部分。Java提供的JDBC(Java Database Connectivity)使得软件编程人员在数据库编程中如鱼得水,真正实现操作平台独立以及供应商独立的目标。


01、揭秘JDBC


JDBC是Java数据库编程的总称,是JDK重要组成部分,指的是java.sql包中提供的所有支持数据库编程的API类。当然,数据库是JDBC的必要组成部分。由于现在流行的数据库都提供与Java程序连接的驱动软件,因此,在JDK9以及新版本的Java SE中不再提供数据库(除JDK6 到JDK 8包括小型数据库Derby外)。在JDBC编程中,软件开发人员必须具有数据库访问的等级和能力(如可以读写、删除、更新、创建数据库等),或者为了方便编程和测试,在本地计算机上安装自己管理和控制的数据库。


JDBC包括更高一层的含义,它提供对第三方数据库提供商,在编写驱动软件时遵循的协议和规范。JDBC通过驱动软件drivers,或称Connectors,与数据库通讯和交流。JDBC驱动软件用来翻译Java程序中对数据库访问的代码,使之成为这个数据库的语言;另一方面,当数据库将数据或信息传送给Java程序时,这个驱动软件又将其翻译为Java语言的代码和数据。


Java提供的驱动软件称为JDBC/ODBC桥(JDBC/Open Database Connectivity Bridge)。ODBC最初是由微软公司提供的数据库编程协议模式,现在越来越多的数据库提供商使用以JDBC基础的驱动软件,或者称Connectors。


当前流行的所有数据库提供商,例如IBM的DB2、甲骨文的Oracle、微软的SQL Server、MySQL等等,都在不断更新他们所提供的JDBC驱动软件。值得一提的是,大多数驱动软件都用Java语言编写,提高了代码的独立性,实现了Java“write once, run everywhere”的目标。

image.png


从图1中可以看出,一个具有数据库编程的Java应用程序通过JDBC API类与JDBC 驱动软件管理通讯。这些JDBC管理程序则调用具体的驱动软件,例如JDBC-ODBC桥,或ODBC驱动软件,用来连接微软或Java以外的数据库,以及第三方数据库供应商提供的JDBC驱动软件与数据库通讯。


根据数据库的不同,有些JDBC驱动软件必须安装在用户端计算机,而有些则要求安装在数据库服务器中。在JDBC编程中,软件开发人员需要了解具体数据库对JDBC驱动软件的要求。由于数据库经常由专门的部门和专职人员管理,软件工程师则需要咨询和向数据库管理部门提出JDBC驱动软件的安装、配置以及测试请求。


选择MySQL数据库作为JDBC编程。其好处如下:

●MySQL可以免费下载。

●MySQL和其JDBC驱动软件易于在本地计算机上安装、配置和调试。读者朋友可以控制和管理,便于学习。

●MySQL是当前最流行的数据库之一。越来越多的应用软件利用MySQL作为数据库。


02、数据库安装


与其他应用软件的安装一样,双击下载后的MySQL安装文件(通常储存在Downloads文件夹),并遵循安装对话窗口的提示,一般情况下点击Next即可。以MySQL8为例,提醒你安装时应该注意如下几点:


1.为学习数据库编程目的,安装MySQL服务器即可。

2.保存好更新创建的密码。

3.MySQL利用预设的网络端口3306,并将安装的软件储存到你计算机如下目录中:

C:\Program Files\MySQL\MySQL Server 8.0\

建议一般情况下不改变这个设置。

4.当安装完毕,MySQL将自动启动服务器,并在你计算机中创建一个名为:

MySQL Command Line Client

的链接,用来进行输入MySQL指令,进行测试和访问MySQL等功能,如图2所示。

image.png


03、数据库运行测试


祝贺你成功安装了MySQL!下面首先介绍如何测试MySQL服务器以及MySQL的基本操作指令。我们将在本章以后小节逐步介绍在Eclipse中设置和测试MySQL的JDBC驱动软件以及Java代码与MySQL服务器的连接,为JDBC数据库编程做好准备。

你可以输入如下MySQL基本操作指令进行数据库的运行测试:

在计算机中找到并按下MySQL Server Command Line Client链接

在服务器显示的窗口输入你在安装时建立的密码:

image.png


输入如下指令创建一个数据库:

CREATE DATABASE MyDatabase;

MySQL将显示:

Query OK. 1 row affected. (0.04 sec.)

输入如下指令使用这个数据库:

use mydatabase;

这时MySQL将显示:

Database changed

表示目前使用MyDatabase。

输入如下指令创建一个名为Example的数据表:

create table example (id int, name varchar(40));

输入如下指令将一个记录加入以上数据表:

insert into example values (328890, 'Wang Lin ');

输入如下指令显示example中对记录字段的定义:

desc example;

输入如下指令选择表中的所有记录:

Select * from example;

图4记录了以上所有执行过程。

image.png


输入如下指令退出MySQL服务器:

\q


03下载JDBC驱动软件


成功下载、安装、测试数据库软件后,离利用Eclipse进行数控编程只有一两步之遥了,继续加油!首先下载JDBC驱动软件。MySQL称这个软件为JDBC Connector,或Connector /J。这个驱动软件可在MySQL的如下网址下载:

https://dev.mysql.com/doc/


安装步骤

1. 下拉到这个网页的尾端,找到Connector/J,按下与你安装数据库版本相同的连接器,如Connector/J8.0

2. 按下Connect/J Installation

3. 按下Installing Connector/J from a Binary Distribution

这个驱动软件将以压缩文件下载到你的下载文件夹。如:

mysql-connector-java-8.0.13

对此文件解压后,可以看到一个名为:

mysql-connector-java-8.0.13.jar的文件。这就是你需要的在Eclipse中连接数据库的驱动软件。


04、一步步教会你Eclipse连接数据库


在Eclipse中连接数据库的步骤:

如下是在Eclipse中连接数据库的步骤:

1.在Eclipse中创建进行数据库编程的项目,为测试目的,你可先创建一个试验项目,如:MySQLTest

找到下载和解压的JDBC驱动软件,如:mysql-connector-java-8.0.13.jar,将它拷贝到MySQLTest项目中。

2.选择这个驱动软件->单击鼠标右键->在打开的选项窗口选择Build Path->再选Configuring Build Path…

3.在打开的窗口选择Libraries->Classpath->Add Jars,如图5所示:

image.png

4.在打开的窗口双击项目名称,如MySQLTest->选择驱动软件->按下OK->按下Applyand Close,完成连接设置。如图6所示。

image.png


05、一个实例搞懂JDBC是否连接成功


现在你可编写一个测试是否与MySQL连接成功的简单程序:

//这个程序见本文压缩附件中名为JDBCMySqlTest.java源代码
import java.sql.*; //支持数据库编程的包
public class JDBCMysqlTest {
 public static void main (String args[]) {
     Connection connection;
try{
            Class.forName("com.mysql.cj.jdbc.Driver"); //装入JDBC驱动软件
            String dbURL = "jdbc:cj.mysql://localhost:3306"; //数据库本机连接端口
            connection = DriverManager.getConnection( //调用连接数据库方法
            dbURL, "root", "password2018"); //指定数据库、用户名,以及 //安装MySQL时建立的密码
            System.out.println("connection is succeeded..."); //如果连接成功,打印信息
            System.out.println("dbURL:" + dbURL);
            System.out.println("Connection: " + connection);
        }
        catch(ClassNotFoundException e){ //异常处理
            System.out.println("Database driver not found.");
        }
catch(SQLException e){
            System.out.println("Error opening the db connection: " +e.getMessage());
     }
    }
}

如果Java 与数据库的连接成功,将在Eclipse输出窗口打印如下信息:

connection is succeeded...
dbURL:jdbc:mysql://localhost:3306
Connection: com.mysql.cj.jdbc.ConnectionImpl@3bd82cf5

我们将在下面的小节中详细讨论Java数据库编程语句以及JDBC数据库编程的技术。


06、编写你第一个数据库程序


如下程序演示数据库编程的基本操作:

●连接MySQL。

●创建名为ProductDB的数据库。

●创建名为Products的数据表。

●在数据表中加入记录。

●从数据表中选择记录。

●打印选择的记录。


假设Products具有如下字段:

Code VAR(4)
Title VARCHAR(40)
Price DECIMAL(10, 2)

如下是这个程序的代码:

//这个程序见本文压缩附件中名为JDBCMySqlTest2.java源代码
import java.sql.*;
public class JDBCMysqlTest2 {
 public static void main (String args[]) {
     Connection connection;
try{
            Class.forName("com.mysql.cj.jdbc.Driver");
            String dbURL = "jdbc:mysql://localhost:3306";
            String username = "root";
       String password = "password2018"; //安装MySQL时建立的密码
            connection = DriverManager.getConnection(
                dbURL, username, "");
            Statement stmt = connection.createStatement();
    stmt.executeUpdate("create database ProductDB"); //创建数据库
       stmt.executeUpdate("use ProductDB"); //使用指定数据库
       //创建数据表
       stmt.executeUpdate("CREATE TABLE Products(Code CHAR(4), Title
              VARCHAR(40), Price DECIMAL(10, 2))");
    stmt.executeUpdate("INSERT INTO Products VALUES ( //加入记录 '1100','Art in Java programming', 89.05)");
    stmt.executeUpdate("INSERT INTO Products VALUES (
              '2200', 'Computer Color Printer', 1017.96)");
        ResultSet rs = stmt.executeQuery("SELECT * FROM Products"); //选择记录
        while (rs.next()) { //得到记录
        String code = rs.getString("Code");
        String title = rs.getString("Title");
        double price = rs.getDouble("Price");
        System.out.println("Code: " + code + " Title: " + title +Price: "+ price + "\n");
      }
    stmt.close();
        }
catch(ClassNotFoundException e){
            System.out.println("Database driver not found.");
        }
catch(SQLException e){
            System.out.println("Error opening the db connection: " +e.getMessage());
    }
    }
}

程序运行后打印如下结果:

Code: 1100 Title: Art in Java programming Price: 89.05
Code: 2200 Title: Computer Color Printer Price: 1017.96

代码中:

create database databaseName

以及

use databaseName

为MySQL创建数据库和使用数据库的指令。


值得注意的是如果你创建的数据库已经存在,则不可以再重复创建这个数据库的语句,否则将产生运行错误。在这种情况下,可删除创建数据库的语句:

stmt.executeUpdate("create database ProductDB"); //如果数据库已经存在,删除这个语句

并将dbURL的内容修改为连接到已存在数据库:

String dbURL = "jdbc:mysql://localhost:3306/ProductDB";


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
15天前
|
前端开发 JavaScript Java
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
56 17
|
1月前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
107 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
1月前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
113 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
19天前
|
Java C语言
课时8:Java程序基本概念(标识符与关键字)
课时8介绍Java程序中的标识符与关键字。标识符由字母、数字、下划线和美元符号组成,不能以数字开头且不能使用Java保留字。建议使用有意义的命名,如student_name、age。关键字是特殊标记,如蓝色字体所示。未使用的关键字有goto、const;特殊单词null、true、false不算关键字。JDK1.4后新增assert,JDK1.5后新增enum。
|
1月前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
166 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
19天前
|
Java 编译器
课时7:Java程序基本概念(注释)
课时7介绍了Java程序中的注释。编程语言有其语法和语义,注释有助于理解代码需求,防止断档。Java支持三类注释:单行(//)、多行(/* */)和文档注释(/** */)。注释不会被编译器编译。范例中展示了如何在代码中使用注释,并强调了注释对项目文档管理的重要性。
|
16天前
|
存储 Java 数据库连接
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
|
16天前
|
搜索推荐 Java Android开发
课时146:使用JDT开发Java程序
在 Eclipse 之中提供有 JDT环境可以实现java 程序的开发,下面就通过一些功能进行演示。 项目开发流程
|
19天前
|
Java 开发工具
课时5:第一个Java程序
课时5介绍了编写第一个Java程序的步骤,包括创建Hello.java文件、编写“Hello World”代码、编译和运行程序。主要内容有:1) 新建并编辑Hello.java;2) 编译Java源文件生成.class文件;3) 通过命令行解释执行Java程序;4) 解释主方法的作用及信息输出操作。本课强调了类定义、文件命名规则和基本程序结构的重要性,并建议初学者使用记事本编写代码以熟悉基础语法。
|
2月前
|
传感器 安全 算法
消防救援支队消防员单兵装备智能养护舱电机驱动java版程序(二)
本文探讨消防救援中智能养护舱电机驱动的Java程序设计,作为系列文章第二部分。通过自动化和智能化手段,智能养护舱提升了装备维护效率与准确性。文章详细介绍了电机驱动模块的设计与实现,包括硬件选型、PID控制策略、安全保护机制及Java程序架构,确保电机精确控制、稳定性和安全性。未来将优化功能并引入智能算法和物联网技术,进一步提升装备维护智能化水平。