前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JDBC】使用IDEA连接数据库,执行增删改操作。

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

作者头像
.29.
发布2022-11-15 14:03:21
1.3K0
发布2022-11-15 14:03:21
举报
文章被收录于专栏:个人技术博客

CSDN话题挑战赛第2期 参赛话题:学习笔记

在这里插入图片描述
在这里插入图片描述

JDBC专栏

【1】idea添加mysql-jar包 【2】使用IDEA连接数据库,执行增删改操作。 【3】IDEA连接数据库,执行查询操作,返回结果集并输出。


连接数据库,执行更新


前言

JDBC是一个Java与数据库通信的规范(接口),各大数据库厂商会去实现JDBC规范(实现类),而上一篇文章提到的jar 包就是包含各种实现类的压缩包。

这篇文章,我将介绍如何尝试利用JDBC规范来连接数据库,对数据库进行更新操作。


一、连接数据库

1.加载驱动

代码语言:javascript
复制
        Class.forName("com.mysql.jdbc.Driver");

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

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

在这一步,我们需要准备三样东西 URL ,账户用户名,密码 URL:表示跟数据库通信的地址。 用户名:自然就是拥有数据库权限的账户了,这里使用根用户root。 密码:登录数据库需要用户名及对应的密码。

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

在这里插入图片描述
在这里插入图片描述

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

准备URL

代码语言:javascript
复制
String url = "jdbc:mysql://localhost:3306/fruitdb";

jdbc:mysql:// 是通信地址的固定开头格式 localhost:3306/ 代表本地连接,3306则是MySQL数据库的默认端口号 后面的就是我创建的其中一个DataBase名称

准备用户名与密码

代码语言:javascript
复制
        String user = "root";//用户名为root
        String psw = "";     //password填写对应用户的密码即可

使用数据库管理器连接

代码语言:javascript
复制
Connection conn = DriverManager.getConnection(url, user, psw);

整合:

代码语言:javascript
复制
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地址中数据库的内容:

以下是数据库中的操作:

代码语言:javascript
复制
USE fruitdb;
SELECT * FROM t_fruit;

在这里插入图片描述
在这里插入图片描述

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

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

代码语言:javascript
复制
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()

代码语言:javascript
复制
PreparedStatement psmt = connection.prepareStatement(sql);

3.填充内容参数

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

代码语言:javascript
复制
        psmt.setString(1,"石榴");
        psmt.setInt(2,8);
        psmt.setInt(3,64);
        psmt.setString(4,"石榴,在广东也可以叫鸡屎果");

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

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

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

三、执行,检查

完整代码:

代码语言:javascript
复制
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();
    }
}

执行结果:

在这里插入图片描述
在这里插入图片描述

让我们检查一下数据库:

在这里插入图片描述
在这里插入图片描述

结果确实是添加成功了。

乱码

如果遇到乱码,通常都是字符集的设置问题,可以尝试在URL地址中设置使用的字符集: ?useUnicode=true&characterEncoding=utf-8

代码语言:javascript
复制
        //通过驱动管理器连接对象
        //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);
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JDBC专栏
    • 连接数据库,执行更新
    • 前言
    • 一、连接数据库
      • 1.加载驱动
        • 2.通过驱动管理器连接对象
        • 二、执行更新
          • 1.编写SQL语句
            • 2.创建预处理命令对象PreparedStatement()
              • 3.填充内容参数
                • 4.执行更新executeUpdate(),关闭资源close()
                • 三、执行,检查
                  • 乱码
                  相关产品与服务
                  云数据库 SQL Server
                  腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档