IDEA中JDBC连接MYSQL数据库步骤超详细总结------第一种方法

目录

概述

一、Jar包的下载与引入(一)下载包1.jar包下载的注意事项

2.jar包的下载地址

3.下载步骤

 (二)导包

 (三)Maven导包

二、JDBC链接mysql

(一)基础知识介绍

1.抛出异常

2.加载驱动

3.创建mysql的连接

4.创建sql

5.创建操作对象

6.获取操作返回值

7.释放

(二)链接数据库

三、代码总结 


概述

JDBC是Java连接数据库的一种接口,它由各个数据库厂商为开发者提供的接口,要使用它需要到相应厂商下载对应的jar包,maven导包的操作,这篇文章为大家总结了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开始下载

 

 若mysql不是最新版本的,选择Archives

 选择对应版本号,并选择Platform Independent

 点击No thanks,just start my download.

 

 (二)导包

解压压缩包,在压缩包中找到该jar包,ctrl+c复制这个jar包

 右键src,在src中创建一个包,取名lib,一般需要用的包我们都把它放进该包中,然后ctrl+v粘贴进IDEA,点击ok即可

 选中该jar,右键,选择Add as Library…

 点击下拉菜单,选择Module Library,点击ok
这一步是将该jar作为该项目的包

 

 完成后如下图所示就是成功导入了

 (三)Maven导包

大家先自行百度:后面再补充 

二、JDBC链接mysql

(一)基础知识介绍

1.抛出异常

有两种抛出方式
第一种为直接抛出,在类或方法后面都可以加入该异常语句,‘throws Exception’,这种没有什么异常的话可以直接执行,具体使用方法如下

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

第二种可以处理异常,有异常会提示异常,并为开发者提供异常处理机制

//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");

3.创建mysql的连接

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

要记住,链接mysql或其他数据库肯定要有个url、user、password,它们都是String类型的,其中url是链接,user是用户名,一般为root,password为密码,这三个变量名大家可以任意设置,后面使用getConnection,里包含即可

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

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

jdbc:mysql[协议名称]://localhost:3306[主机:端口]/test[数据库名]
?useSSL=[是否进行SSL连接]
&useUnicode=[是否使用字符集]
&characterEncoding=[使用指定utf-8编码]
&serverTimezone=[设置时区]

1)url: 统一资源定位符。
2)jdbc:mysql 是协议名称,JDBC连接方式。
3)localhost:3306 是主机:端口 还可以写作127.0.0.1:3306。
4)test 数据库名。
5)useSSL: MySQL在高版本需,指明是否进行SSL连接,url中加入ssl=true或者false即可 。
6)useUnicode: 是否使用Unicode字符集,如果参数characterEncoding设置为GB2312或GBK,该参数值必须设置为true。
7)characterEncoding: 当useUnicode设置为true,给定编码,常用utf8,默认是:autodetect。
8)serverTimezone: 设置时区 如UTC(统一标准世界时间)或Asia/Shanghai(中国时区)

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

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

一般格式为,其中db1为数据库名

url=jdbc:mysql://localhost:3306/db1?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai

4.创建sql

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

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

5.创建操作对象

有三种方式创建操作对象
1)普通执行sql对象若无特殊需求推荐使用该语句
首先,创建Statement对象

Statement stmt = conn.createStatement();

根据需求使用三种执行SQL语句的方法
①查询语句使用:executeQuery()用于产生单个结果集的语句
sql为需要执行的查询语句,ResultSet后面会讲到

ResultSet rs=stmt.executeQuery(sql);

②执行insert、upadate、delete语句以及SQL DDL语句:executeUpdate(),该方法返回值是受影响的行数,一般可使用int类型接收
sql为需要执行的查询语句,result一般用于输出,提示开发者,该操作影响行数

int result=stmt.executeUpdate(sql);

 ③可输入全部sql语句:execute(),返回多个结果集
sql为需要执行的查询语句,result可为多个数据类型,按情况使用

string result=stmt.execute(sql);

 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.获取操作返回值

该对象可忽略,一般用于获取sql语句的返回结果
返回值的一般语句
stmt.execute()为执行sql语句对象

ResultSet rs=stmt.execute();

1)返回值为单个结果,并需要输出在控制台

ResultSet rs=stmt.execute();
System.out.println(rs);

2)返回值为多个结果时,并需要输出在控制台
一般是返回查询语句使用,返回多个查询的值,输出一般为查询的各个值,如id,name等,可循环输出

ResultSet rs=stmt.execute();
while (rs.next()){
                System.out.println(rs.getInt(1) + "\t"
 + rs.getString(2) + "\t" + rs.getString(3));
            }

7.释放

哪个最后创建,先释放哪个,没有创建对象,可以不释放
一般语句

rs.close();// 释放resultset
stmt.close();//释放statement
conn.close();//释放connection

(二)链接数据库

注意:解释信息在注释里

try{
		//加载jdbc驱动
		Class.forName("com.mysql.cj.jdbc.Driver");
		//添加数据库用户名与密码
        String usere="root";
        String pwd="11111";
        //数据库链接,db1为数据库名
        String url="jdbc:mysql:///db1";
        //创建数据库链接对象Connection
        Connection con = DriverManager.getConnection(url,usere,pwd);
        //创建sql语句,本示例语句为查询user表中的所有信息
        String sql="select *from user";
        /*创建sql语句操作对象
        注意,此时还未加载sql语句,请勿把sql语句放入括号中*/
        Statement stmt = conn.createStatement();
        /*使用executeQuery查询sql语句,
        返回为结果集,故使用ResultSet对象*/
        ResultSet rs=stmt.executeQuery(sql);
        //此时代码还未结束下面会接着
//此时我想要查看该表中的数据值
		while(rs.next()){
			//输出
			//getInt里需要对应数据库中的表头的名
			System.out.println("id="+rs.getInt(1)+"\n"+
			//getString里需要对应数据库中的表头的名
			"name="+rs.getString("username")+"\n"+
			"password="+rs.getString("passd")+"\n"+
			"usersex="+rs.getString("usersex")+"\n"+
			"useraddress="+rs.getString("useraddress")+"\n"+
			)
		}
/*使用完了,我们需要关闭资源不然会一直消耗系统资源
下面释放,当我们没有创建该资源时我们不需要释放,
一般stmt和conn,rs可有可无*/
rs.close();
stmt.close();
conn.close();
//这里我们只提示异常,不处理异常
}catch(Exception e){
	System.out.println("有一个异常!!!");
	System.out.println(e);
}

三、代码总结 

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="123456";
            //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) + "\t" + rs.getString(2) + 
"\t" + 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();
                }
            }
        }
    }

  • 6
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值