JavaWeb | JDBC概述及IDEA连接MySQL

news/2023/6/7 23:02:32

本专栏主要是记录学习完JavaSE后学习JavaWeb部分的一些知识点总结以及遇到的一些问题等,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏
本专栏地址:🔥JavaWeb
Java入门篇: 🔥Java基础学习篇

文章目录

  • 一、前言
  • 二、概述
    • 1.概述
    • 2.本质
    • 3.好处
  • 三、Java操作数据库的流程
  • 四、创建并配置IDEA项目
    • 1.创建空项目
    • 2.配置项目
    • 3.新建模块
    • 4.导入jar包
    • 5.将jar包导入libraries
  • 五、书写代码,连接数据库
    • 1.注册驱动
    • 2.获取连接
    • 3.定义sql
    • 4.获取执行sql的对象
    • 5.执行sql
    • 6.处理结果
    • 7.释放资源
    • 8.完整代码
  • 六、测试代码
  • 七、结语


一、前言

首先,学习JavaWeb就需要连接数据库,使用Java语言来对数据库进行一系列操作,本文作为一篇入门JDBC的文章,希望能够帮助到更多的初学者吧

二、概述

1.概述

JDBC 就是使用Java语言操作关系型数据库的一套API
全称:( Java DataBase Connectivity ) Java数据库连接

我们开发的同一套Java代码是无法操作不同的关系型数据库,因为每一个关系型数据库的底层实现细节都不一样。

如果这样,问题就很大了,在公司中可以在开发阶段使用的是MySQL数据库,而上线时公司最终选用oracle数据库,我们就需要对代码进行大批量修改,这显然并不是我们想看到的。

我们要做到的是同一套Java代码操作不同的关系型数据库,而此时sun公司就指定了一套标准接口(JDBC),JDBC中定义了所有操作关系型数据库的规则。

众所周知接口是无法直接使用的,我们需要使用接口的实现类,而这套实现类(称之为:驱动)就由各自的数据库厂商给出。

在这里插入图片描述

2.本质

  • 官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口

  • 各个数据库厂商去实现这套接口,提供数据库驱动jar包

  • 我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

3.好处

  • 各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发

  • 可随时替换底层数据库,访问数据库的Java代码基本不变

三、Java操作数据库的流程

第一步编写Java代码

第二步:Java代码将SQL发送到MySQL服务端

第三步:MySQL服务端接收到SQL语句并执行该SQL语句

第四步:将SQL语句执行的结果返回给Java代码

四、创建并配置IDEA项目

1.创建空项目

在这里插入图片描述

2.配置项目

在这里插入图片描述

3.新建模块

这里可以使用IDEA的一个快捷方式来直接新建和配置模块,点击下图中红框中的图案后选择模块(Model)即可新建模块
在这里插入图片描述
在这里插入图片描述
然后这里选择Java模块,以及对应的SDK即可新建并配置成功一个新的模块(在本项目中的)
在这里插入图片描述
这里自定义一个模块名称
在这里插入图片描述

4.导入jar包

导入jar包时不能直接将jar包复制黏贴到这个项目中,而是要在项目中再新建一个目录,在该目录下存放我们所要使用的jar包。这里给目录起名 lib
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.将jar包导入libraries

这里右键选中jar包我没有找到快捷键,于是采用了下面这种方式,测试过发现也是可以正常连接MySQL数据库并执行代码的

选择文件(file)—> 结构设置—>libraries,然后浏览文件,注意这里要 选择这个项目目录下的jar包,不要选择自己从网上下载放在别的地方的jar包
在这里插入图片描述
这样就创建并配置好一个项目了,接下来开始写代码
在这里插入图片描述

五、书写代码,连接数据库

1.注册驱动

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

2.获取连接

我们要获取链接就要用到getConnection方法,这里getConnection方法内的参数我们可以来看一下有以下这三个,那么我们就需要去自定义这三个变量,再定义一个变量去接收这个方法执行后的结果
在这里插入图片描述

  • url:需要链接的地址,jdbc:mysql://localhost:3306/[数据库名称]
  • 这里我的数据库名称是test,那么链接就是jdbc:mysql://localhost:3306/test

在这里插入图片描述

  • username:自己设定MySQL的用户名

  • password:自己设定的密码

String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "123456";
Connection c = DriverManager.getConnection(url,username,password);

3.定义sql

这里我们可以自己定义一个语句,增删改都可以,前提是这个语句不要有错

String sql = "update user set money = 5000  where id = 1 "

4.获取执行sql的对象

这里使用createStatement()方法,并自定义一个对象来接收

Statement stmt = c.createStatement();

5.执行sql

这里执行完sql语句后我们要用一个变量去接收它,这样才能处理这个结果,也就是打印输出这个结果,那么就需要用到executeUpdate()方法

int count = stmt.executeUpdate(sql);

6.处理结果

在MySQL执行完成后,要将结果传送到IDEA中,并打印输出处理的结果

System.out.println(count);

7.释放资源

在结束整个程序后,要关闭上面两个方法,使用.close方法来释放资源

stmt.close();
c.close();

8.完整代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class jdbcDemo1 {public static void main(String[] args) throws Exception {//注册驱动Class.forName("com.mysql.jdbc.Driver");//获取连接String url = "jdbc:mysql://localhost:3306/test";String username = "root";String password = "123456";Connection c = DriverManager.getConnection(url,username,password);//定义sqlString sql = "update user set money = 5000  where id = 1 ";//获取执行sql的对象Statement stmt = c.createStatement();//执行sqlint count = stmt.executeUpdate(sql);//处理结果System.out.println(count);//释放资源stmt.close();c.close();}
}

六、测试代码

这里我们就写了一条数据,希望通过代码来对这个表中的数据进行更新,将zhangsan的money数据改为5000,代码具体如上,如果sql语句看不懂的话可以看博主的《数据库》相关专栏
在这里插入图片描述

执行完毕,控制台输出1,代表有一条数据发生变化,我们再去Navicat上看一下数据(注意Navicat需要刷新一下才会改变数据,否则依然是原始数据)
在这里插入图片描述
在这里插入图片描述
修改成功!

七、结语

接下来将学习相关的JDBC API,博主也会在这个专栏中持续更新的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4555555.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

安卓手机使用Linux Deploy安装CentOS

目录 前言 准备工作 实践 busybox安装 安装并配置Linux Deploy 局域网使用ssh连接服务器 公网使用ssh连接服务器 环境安装 写在最后 前言 最近沉迷于服务器搭建,书接上文,在安卓高版本中成功安装了服务器,但是安卓低版本的却一言难尽…

汉字转拼音小程序——Python版

首先说明,我不是计算机专业的!我是学油藏工程的(石油工程专业方向之一),大学毕业后一直从事石油开发地质专业的工作。石油领域内前期的地震资料处理,中期的开发地质研究,以及后期的油藏数值模拟…

生字癖用计算机,那些因为太复杂没被收录的生僻字,终于被录入电脑

作为一个自媒体作者,差评君每天的日常少不了接触电脑、键盘、输入法( 和奶茶 )。而为了能让大家晚上早点儿睡觉,差评君也没少琢磨打字的技巧 —— 为了打字更快,差评君还学会了双拼打字。不过写了这么久文章,差评君也发现了一些问…

深度学习入门基础CNN系列——池化(Pooling)和Sigmoid、ReLU激活函数

想要入门深度学习的小伙伴们,可以了解下本博主的其它基础内容: 🏠我的个人主页 🚀深度学习入门基础CNN系列——卷积计算 🌟深度学习入门基础CNN系列——填充(padding)与步幅(stride&…

大数据分析取得的成果有哪些

大数据研究正在由前几年的新鲜技术变得越来越普及和商业化。同时,由于研究的向前推进,以数据为基础的人工智能、机器学习和物联网等其他各个领域也将会取得越来越大的成果。那么大数据分析取得的成果有哪些?简单给大家分享如下: 一、积极主动…

gSpan算法研究

摘要随着信息技术的不断发展,人类可以很容易地收集和储存大量的数据,然而,如何在海量的数据中提取对用户有用的信息逐渐地成为巨大挑战。为了应对这种挑战,数据挖掘技术应运而生,成为了最近一段时期数据科学的和人工智…