当前位置: 首页 > news >正文

IDEA中JDBC连接MYSQL数据库步骤超详细总结

文章目录

  • 概述
  • 一、Jar包的下载
    • 1.jar包下载的注意事项
    • 2.jar包的下载地址
    • 3.下载步骤
  • 二、JDBC连接MYSQL
    • (一)导包
    • (二)开始连接
      • 1.抛出异常
      • 2.加载驱动
      • 3.创建mysql的连接
      • 4.创建sql
      • 5.创建操作对象
      • 6.获取操作返回值,可忽略
      • 7.释放
  • 自己写的,代码总结

概述

JDBC是Java连接数据库的一种接口,它由各个数据库厂商为开发者提供的接口,要使用它需要到相应厂商下载对应的jar包,这篇文章为大家总结了jdbc的mysql数据库的连接方式,由于是第一次写的文章,可能会有些潦草,忘各位见谅呀!!


一、Jar包的下载

1.jar包下载的注意事项

这一步是最开始的一步,也是最基础的一部,jar包的下载需要对应相应的mysql版本,就是说,你的mysql是哪个版本,就下载哪个版本的jar包,不然会报错!!

2.jar包的下载地址

JDBC 下载地址

3.下载步骤

若mysql是最新版本,在General Availability (GA)Releases,在下拉菜单选择Platform Independent,即“独立于平台”
请添加图片描述
点击No thanks,just start my download.
请添加图片描述

选择如下选项,点击Download开始下载
点击Download
若mysql不是最新版本的,选择Archives
jdbc安装
选择对应版本号,并选择Platform Independent
请添加图片描述
点击No thanks,just start my download.
在这里插入图片描述
下载zip包,点击Download开始下载即可

二、JDBC连接MYSQL

(一)导包

解压压缩包,在压缩包中找到该jar包,ctrl+c复制这个jar包
请添加图片描述
右键src,在src中创建一个包,取名lib,一般需要用的包我们都把它放进该包中,然后ctrl+v粘贴进IDEA,点击ok即可
在这里插入图片描述
选中该jar,右键,选择Add as Library…
在这里插入图片描述
点击下拉菜单,选择Module Library,点击ok
这一步是将该jar作为该项目的包
在这里插入图片描述
完成后如下图所示就是成功导入了
请添加图片描述

(二)开始连接

1.抛出异常

有两种抛出方式,第一种为直接抛出,这种没有什么异常的话可以直接执行

//使用throws Exception
//如:
public static void main(String[] args) throws Exception

第二种可以处理异常,有异常不会导致java虚拟机关闭

//2.可以使用try{}catch{}
//如
try {
	/*这里放置执行的代码*/
    }catch (){
    /*这里放释放的代码*/
		}  

2.加载驱动

加载驱动的基本语法为

Class.forName("");

mysql5.0的版本和8.0的版本加载驱动的语法变了
5.0后的版本语法为

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

8.0版本后的语法为

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

注意:mysql 5.0版本后可以忽略该语句,就是说可以不用添加该语句也能执行,可以不添加。

3.创建mysql的连接

连接的基本语法,这里是基本语法后面会详细说明

String url="";
/*连接数据库的账号,user账号的格式,如未经特殊修改可以为root,如果修改,改成哪个即为哪个*/
String user="root";
/*连接数据库的密码,密码的话设置啥密码就是啥咯*/
String password="123456";
//执行sql对象
Connection conn = DriverManager.getConnection(url, user, password);

url格式说明,连接本机的IP地址与端口号可以不写,后面的需求不需要可不用写

jdbc:mysql://[IP地址:端口号]/数据库名?[需求1]&[需求2]

连接本机的url的最简格式【新手推荐】,其中db1为数据库名

String url="jdbc:mysql:///db1";

mysql查询用户名的语法为

select *from mysql. user

4.创建sql

基本的语法如下所示,sql语法写里面

//基本语法【易报错点,注意检查】
String sql="[sql语法]";

5.创建操作对象

有三种方式创建操作对象
1)普通执行sql对象

Statement stmt = conn.createStatement();

2)预编译sql的执行sql对象,防止sql注入,推荐!!!!
当使用该语句时sql语法的关键字需要为"“,如select * from std where id= ,”"为占位符

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.set【需要添加的数据类型】(1[第一个占位符],1[值]);即给第一个占位符赋值,例如pstmt.setInt(1,1);意思为输入为int类型的值,为第一个?赋值为1。

3)执行存储过程的对象

CallableStatement cstmt=conn.prepareCall(sql);

6.获取操作返回值,可忽略

ResultSet rs=stmt.executeQuery();

7.释放

哪个最后创建,先释放哪个

rs.close();
patmt.close();
conn.close();

自己写的,代码总结

可以做个参考

public static void main(String[] args) {
        //1下载和在工程中配置mysql驱动
        Connection conn=null;
        PreparedStatement stmt=null;
        ResultSet rs=null;

        try {
            //2.加载驱动,mysql5之后可不用该语句
            Class.forName("com.mysql.cj.jdbc.Driver");
            //3.创建连接mysql的url,该语句不用更改;url连接本机可用String url="jdbc:mysql:///db1";
            String url="jdbc:mysql://127.0.0.1:3306/db1?serverTimezone=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true";
            //连接数据库的账号
            String user="root";
            //连接数据库的密码
            String password="137980";
            //4.连接数据库java.sql.Connection
            conn= DriverManager.getConnection(url,user,password);
            //5.测试连接是否成功
            //System.out.println(conn);
            //6.创建sql
            String sql="select * from std where id=?";
            //7.创建操作的对象
            stmt = conn.prepareStatement(sql);
            stmt.setInt(1,1);//设置第一个占位符为1 即id=1

            rs=stmt.executeQuery();
            while (rs.next()){
                System.out.println(rs.getInt(1) + "	" + rs.getString(2) + "	" + rs.getString(3));
            }
        }catch (ClassNotFoundException| SQLException e){
            e.printStackTrace();
        }finally {
            if(rs!=null){
                try {
                    rs.close();
                }catch (SQLException throwables){
                    throwables.printStackTrace();
                }
            }
            if (stmt!=null){
                try {
                    stmt.close();
                }catch (SQLException throwables){
                    throwables.printStackTrace();
                }
            }
            if (conn!=null){
                try {
                    conn.close();
                }catch (SQLException throwables){
                    throwables.printStackTrace();
                }
            }
        }
    }

最后

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。

相关文章:

  • docker 开启 nginx 容器
  • 109 使用Ajax传递请求本地数据库
  • 《算法系列》之设计
  • xerces-c++内存管理策略为何耗费大量内存
  • STM32学习笔记:驱动SPI外设读写FLASH
  • 操作系统安全 基本概念
  • 猿创征文——C++|string类2
  • 【51单片机】认识单片机
  • Windows中执行C语言编译的程序乱码的解决方法
  • 商城项目10_JSR303常用注解、在项目中如何使用、统一处理异常、分组校验功能、自定义校验注解
  • 一天时间迅速准备前端面试|JS基础—原型和原型链【三座大山之一,必考】
  • Spring Security详细讲解(JWT+SpringSecurity登入案例)
  • 【Network】网络基础@应用层 —— 协议 | http | https
  • UGUI学习笔记(九)自制3D轮播图
  • R统计-单因素ANOVA/Kruskal-Wallis置换检验
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • ➹使用webpack配置多页面应用(MPA)
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • flutter的key在widget list的作用以及必要性
  • github从入门到放弃(1)
  • JavaScript 一些 DOM 的知识点
  • Java超时控制的实现
  • Java小白进阶笔记(3)-初级面向对象
  • Java知识点总结(JavaIO-打印流)
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • overflow: hidden IE7无效
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 前端学习笔记之观察者模式
  • 入手阿里云新服务器的部署NODE
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 微信小程序--------语音识别(前端自己也能玩)
  • 小程序测试方案初探
  • 阿里云服务器如何修改远程端口?
  • 关于Android全面屏虚拟导航栏的适配总结
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 树莓派用上kodexplorer也能玩成私有网盘
  • #define与typedef区别
  • (02)vite环境变量配置
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)Linux+Windows下安装ffmpeg
  • (转)linux下的时间函数使用
  • (转载)(官方)UE4--图像编程----着色器开发
  • .NET CF命令行调试器MDbg入门(一)
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET开发不可不知、不可不用的辅助类(一)
  • .net连接oracle数据库
  • .net中生成excel后调整宽度
  • .sh
  • @javax.ws.rs Webservice注解
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [2016.7 day.5] T2
  • [asp.net core]project.json(2)
  • [C++]类和对象【上篇】