【Java】JDBC连接MySQL数据库,一把斗地主时间从无到有讲个通透~

==================

数据,数据库,数据库管理系统和数据库系统是与数据库技术密切相关的四个基本概念。

数据库相信大家都耳熟能详了,其实数据库顾名思义就是存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的~

可能有朋友就要打断我施法了,停停停,我们Java程序猿在IDEA里面和控制台你侬我侬,没有对象new个对象存储在内存JVM的堆上就行了,学数据库干啥啊?

这时候我们就需要了解到:内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。

以疫情期间为例,把人隔离观察住的酒店,就好比是内存,家喻户晓的JVM就是放在内存上的~~~ 酒店是给人住的,他的空间是宝贵的,然而每个人每天生活必需品,衣食住行等等,隔离一天两天可能酒店还放得下,但是隔离十天半个月,一年半载呢?酒店是住人的,不是放东西的~~~酒店寸土寸金每个地方都很宝贵,拿酒店(内存)来放行李和必需品等(海量数据),如果酒店还是西安的W酒店,这岂不是很奢侈?~~你拿来存放自己和跟班大批行李老哥,还缺行李不?(doge),想要存放大批东西(海量数据),我直接把十四运的主场馆(外存上的数据库)(69.6亩)给你放行李(海量数据)

这下诸位应该都了然为什么我们需要搞数据库了吧?


二:如何使用Java连接数据库~

================

1)原生方法


1.1)加载JDBC 驱动:

Class.forName(driver);// mysql 数据库:“com.mysql.jdbc.Driver”

1.2)建立数据库连接:

Connection conn=DriverManager.getConnection(url,userName,password);

1.3)创建 statement,用来执行SQL 语句:

Statement statement =conn.createStatement();

1.4)执行 SQL 语句:

执行SQL语句一般要进行SQL语句的拼接

String SQL = “*******”;//拼接SQL语句,把里面可能会发生关键字,语法冲突的取出来,打上问号

//注意问号的下标从1开始

//这里预处理还能防止数据库注入!~

优化后的终极大招:


PreparedStatement 详解

预先处理好的声明 这个类好处诸多!

有如下:

1)首先 获取连接 我们在上面使用了DataSource类获取 DataSource的对象从而获取连接。这种方法比较注册驱动获取连接,还有一个好处,就是可以使用数据库连接池。


2)除此之外,我们利用PreparedStatemen这个类, preparedStatement 翻译过来就是~事先准备好的声明。 通过连接 获取事先准备好的声明。

PreparedStatement preparedStatement = connection.preparedStatement(SQL);

//上述获取连接之后,等号右边可以翻译为根据连接处理预先准备好的SQL字符串语句。

//然后把preparedStatement类型的引用变量指向 等号右边返回的对象


3)得到事先准备好的声明之后,对 事先准备好的声明 内 放置 要操作的具体内容!

即使setString和setInt 方法,

注意填空的问号下标应该是从1开始的!~


4)这样一来二去,我们把Statement方法优化成了PreparedStatement方法。好处有2

4.1)通过事先处理,后面可以填入的内容 鲁棒性增高,代码可复用性增强

4.2)无特殊要求,百分之九十九点九的开发中程序员都

使用                PreparedStatement                        来防止数据库注入


5)接下来就是对预处理操作的具体执行

5.1)  DQL语句     数据查询语言         preparedStatement.ExecuteQuery()

5.2)  DML语句     数据操纵语言         preparedStatement.ExecuteUpdaye()这两个方法。

Execute the prepared statement翻译过来就是执行准备好的语句!

在此我们要注意执行所准备的语句如果是select即查询(query)语句,需要返回结果集合 ResultSet类实例化的集合对象。

**在针对结果集合对象resultSet进行操作时,必须调用其中的next()**方法!!!

因为next()方法相当于我们获取的操作集合的光标。调用该方法之后,我们能将resultSet结果集里面的对象取出!注意一定要调用这个next方法哦

如果查询结果集存在,resultSet.next();方法的返回值是true,否则是false;

因此可以放在if或者while内使用!~

while(resultSet.next());

if(resultSet.next());

ResultSet rs =statement.executeQuery(sql);


1.5)关闭记录集,关闭声明,关闭连接对象

1.6)连起来

在以反射的方式注册驱动从而获取数据库的连接的方法,详情可以参考我以前的博客,因为本文侧重于讲解DataSource连接数据库的方法!所以在此不作赘述~

1.7)原生方法的不足:

每次使用都要创建连接,使用完毕后还必须关闭连接,操作繁琐,易出错;

连接数据库资源不便统一管理;


三:IDEA中配置jar包

=============

工欲善其事必先利其器,在前期的学习过程中,我们使用JDBC连接MySQL的时候应该手动配置Jar包

移步之前的帖子——>配置Java包流程及Jar包下载


四:url必知必会

=========

我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。.就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。

在使用连接数据库的时候需要先知道数据库的

连接信息~

列位您可记住嘞  127.0.0.1 这个地址:就是当前自己电脑的IP地址

而我们的IP地址 和 端口如何理解

IP地址就相当于我们点外卖订单所填的地址,端口号就是外卖订单所写的收件人!具体交给谁吃!

而且这个URL没必要强行记

URL


private static final String URL = “jdbc:mysql://127.0.0.1:3306/java16_order_system?characterEncoding=utf8&useSSL=true”;

jdbc:mysql://127.0.0.1:3306/java16_order_system?characterEncoding=utf8&useSSL=true

放在好找的地方(如gitee码云仓库)等,需要的时候复制粘贴一改就行了!~


五:datasource获取连接

================

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

stem?characterEncoding=utf8&useSSL=true

放在好找的地方(如gitee码云仓库)等,需要的时候复制粘贴一改就行了!~


五:datasource获取连接

================

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

[外链图片转存中…(img-zHlr1zqB-1714497695152)]

[外链图片转存中…(img-nNV6De9U-1714497695153)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 30
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是用 Java 代码连接 MySQL 数据库的示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class JDBCExample { public static void main(String[] args) { // 设置数据库的驱动名 String driverName = "com.mysql.cj.jdbc.Driver"; // 设置数据库连接的地址 String url = "jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC"; // 设置数据库的用户名 String userName = "root"; // 设置数据库的密码 String password = "123456"; // 声明一个数据库连接的变量 Connection conn = null; try { // 注册 MySQL数据库驱动 Class.forName(driverName); // 获取数据库连接 conn = DriverManager.getConnection(url, userName, password); // 输出连接成功的提示信息 System.out.println("数据库连接成功!"); } catch (ClassNotFoundException e) { // 输出无法找到数据库驱动的异常信息 System.out.println("无法找到数据库驱动:" + e.getMessage()); } catch (SQLException e) { // 输出数据库连接错误信息 System.out.println("无法连接数据库:" + e.getMessage()); } finally { // 在 finally 代码块中关闭数据库连接 try { if (conn != null) { conn.close(); System.out.println("数据库连接已关闭!"); } } catch (SQLException e) { System.out.println("关闭数据库连接失败:" + e.getMessage()); } } } } ``` 注意,上述代码需要根据自己的数据库配置做一定的修改,比如数据库的名称、用户名、密码等。另外,这里使用了 try-catch-finally 结构来处理可能出现的异常,以确保程序的健壮性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值