【JDBC】使用IDEA连接数据库,执行增删改操作。

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 学习使用IDEA连接数据库,执行增删改操作。

一、连接数据库


1.加载驱动

Class.forName("com.mysql.jdbc.Driver");

     com.mysql.jdbc.Driver:是JDBC驱动程序,是用于实现JDBC接口的一组Java类


2.通过驱动管理器连接对象


在这一步,我们需要准备三样东西 URL ,账户用户名,密码

URL:表示跟数据库通信的地址。

用户名:自然就是拥有数据库权限的账户了,这里使用根用户root。

密码:登录数据库需要用户名及对应的密码。


图片是MySQL数据库的登录界面,正需要用户名与密码

微信图片_20221029152059.png

使用JDBC连接数据库相比直接在数据库应用上连接,需要额外确定需要建立通信的数据库的地址,这样才能建立连接。


准备URL:

String url = "jdbc:mysql://localhost:3306/fruitdb";

jdbc:mysql:// 是通信地址的固定开头格式

localhost:3306/ 代表本地连接,3306则是MySQL数据库的默认端口号

后面的就是我创建的其中一个DataBase名称


准备用户名与密码:

String user = "root";//用户名为root
        String psw = "";     //password填写对应用户的密码即可

   

使用数据库管理器连接:

Connection conn = DriverManager.getConnection(url, user, psw);

整合:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
 * @author .29.
 * @create 2022-09-15 21:49
 */
public class Demo02 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/fruitdb";
        String user = "root";
        String psw = ""
        Connection connection = Connection conn = DriverManager.getConnection(url, user, psw);
    }
}

二、执行更新


1.编写SQL语句


在编写SQL语句之前,我们先来了解一下,URL地址中数据库的内容:


以下是数据库中的操作:

USE fruitdb;
SELECT * FROM t_fruit;

微信图片_20221029152117.png

这就是Database:fruitdb中表t_fruit的内容。


接下来就是在IDEA中编写SQL语句,对表进行更新操作了。

String sql = "insert into t_fruit values(9,?,?,?,?)";

values()中的 ?代表还未指定内容


insert into t_fruit values(…)是添加操作;


还可以使用其他的SQL语言:


如:


更新:update t_fruit set price = 100 where fname = ‘榴莲’


删除:delete from t_fruit where fid = 8

等…


2.创建预处理命令对象PreparedStatement()

PreparedStatement psmt = connection.prepareStatement(sql);

3.填充内容参数


上文的SQL语句中,我们用 ?替代了参数,这里进行内容的填充:(下标 ,内容)

psmt.setString(1,"石榴");
        psmt.setInt(2,8);
        psmt.setInt(3,64);
        psmt.setString(4,"石榴,在广东也可以叫鸡屎果");

   

4.执行更新executeUpdate(),关闭资源close()

//执行更新,返回影响行数i
        int i = psmt.executeUpdate();
        //i > 0说明影响行数大于一,即更新成功
        System.out.println(i > 0 ? "添加成功":"添加失败");
        //关闭资源
        psmt.close();
        connection.close();

关闭资源时,先关闭预处理对象psmt(PreparedStatement),再关闭连接(connection)。


三、执行,检查


完整代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
 * @author .29.
 * @create 2022-09-15 21:49
 */
public class Demo02 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/fruitdb";
        String user = "root";
        String psw = ""
        Connection connection = Connection conn = DriverManager.getConnection(url, user, psw);
        //id,fname,price,fcount,remark
        String sql = "insert into t_fruit values(9,?,?,?,?)";
        //4.创建预处理命令对象
        PreparedStatement psmt = connection.prepareStatement(sql);
        //5.填充参数
        psmt.setString(1,"石榴");
        psmt.setInt(2,8);
        psmt.setInt(3,64);
        psmt.setString(4,"石榴,在广东也可以叫鸡屎果");
        //6.执行更新(增删改),返回影响行数
        int i = psmt.executeUpdate();
        System.out.println(i > 0 ? "添加成功":"添加失败");
        //7.释放资源(关闭连接,先关闭psmt,再关闭connection)
        psmt.close();
        connection.close();
    }
}

执行结果:

微信图片_20221029152132.png

让我们检查一下数据库:

微信图片_20221029152138.png

结果确实是添加成功了。


乱码


如果遇到乱码,通常都是字符集的设置问题,可以尝试在URL地址中设置使用的字符集:

?useUnicode=true&characterEncoding=utf-8

//通过驱动管理器连接对象
        //url表示跟数据库通信的地址
        //如果url中需要带参数,使用?连接
        //如果需要带多个参数,第二个参数开始用&连接
String url = "jdbc:mysql://localhost:3306/fruitdb?useUnicode=true&characterEncoding=utf-8";
String user = "root";
String psw = ""
Connection connection = Connection conn = DriverManager.getConnection(url, user, psw);

 

如果你觉得有帮助:


✨点赞✨


✨收藏✨


✨关注✨


✨评论✨

微信图片_20221029111446.jpg



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
SQL Java 数据库连接
连接数据库实现查询员工信息
该博客文章展示了如何在Java中使用JDBC连接SQL Server数据库,并执行查询操作来检索员工信息,包括加载数据库驱动、建立连接、创建SQL查询、处理结果集以及关闭数据库资源的完整示例代码。
连接数据库实现查询员工信息
|
5天前
|
Java 数据库连接 网络安全
JDBC数据库编程(java实训报告)
这篇文章是关于JDBC数据库编程的实训报告,涵盖了实验要求、实验环境、实验内容和总结。文中详细介绍了如何使用Java JDBC技术连接数据库,并进行增删改查等基本操作。实验内容包括建立数据库连接、查询、添加、删除和修改数据,每个部分都提供了相应的Java代码示例和操作测试结果截图。作者在总结中分享了在实验过程中遇到的问题和解决方案,以及对Java与数据库连接操作的掌握情况。
JDBC数据库编程(java实训报告)
|
11天前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
34 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
11天前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
47 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
6天前
|
SQL Java 数据库连接
java连接数据库加载驱动到java项目
该博客文章介绍了如何在Java项目中通过代码加载数据库驱动并连接SQL Server数据库,包括具体的加载驱动和建立数据库连接的步骤,以及如何将驱动包添加到Java项目的构建路径中。
|
6天前
|
SQL 存储 Java
完整java开发中JDBC连接数据库代码和步骤
该博客文章详细介绍了使用JDBC连接数据库的完整步骤,包括加载JDBC驱动、提供连接URL、创建数据库连接、执行SQL语句、处理结果以及关闭JDBC对象的过程,并提供了相应的示例代码。
|
6天前
|
SQL Java 数据库连接
连接数据库修改用户信息
该博客文章通过Java JDBC代码示例演示了如何连接SQL Server数据库,并执行更新操作来修改用户信息,具体将小张的工作改为教授,并检查更新操作是否成功。
|
11天前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
22 6
|
1天前
|
关系型数据库 MySQL 数据库
成功解决:Navicat 连接虚拟机Docker中的mysql数据库失败(仅限某些特殊情况)
这篇文章介绍了在Ubuntu环境中使用Docker部署Flask项目的方法,包括创建测试项目、设置数据库、构建Flask和Nginx镜像以及容器编排,其中使用了MySQL 5.7作为数据库,Flask 2.0.2作为Web框架,Gunicorn 20.1.0作为应用服务器,Nginx 1.21.4作为反向代理,并解决了Navicat连接Docker中的MySQL数据库失败的问题。