JDBC入门操作——连接Mysql数据库

5 篇文章 1 订阅

JDBC入门操作——连接Mysql数据库

使用idea连接MySQL数据库步骤

  1. 导入驱动jar包

    • 复制包到目录下
    • 右键 add as library
  2. 注册驱动

  3. 获取数据库连接对象

  4. 定义sql语句

  5. 获取执行sql的对象 statement

  6. 执行sql

  7. 处理结果

  8. 释放资源

示例代码如下
package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.Statement;

public class JdbcDamo1 {
    public static void main(String[] args) throws Exception
    {
        //1.导入驱动jar包
        //2. 注册驱动
    Class.forName("com.mysql.jdbc.Driver");
    //3. 获取数据库连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3?useSSL=false","root","*******" );
    //4.定义sql语句
        String sql = "update emp set mgr = 1999 where id = 1001 "; //输入需要执行的sql语句
        //5.获取执行sql的对象 statement
        Statement stmt = conn.createStatement();
        //6.执行sql
        int count = stmt.executeUpdate(sql);
        //7.处理结果
        System.out.println(count);
        //8.释放资源
        stmt.close();
        conn.close();
    }
}


注意报错

在JDBC连接Mysql数据库的过程中出现了如下的警告信息:
WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

Mysql数据库的SSL连接问题,提示警告不建议使用没有带服务器身份验证的SSL连接,是在MYSQL5.5.45+, 5.6.26+ and 5.7.6+版本中才有的这个问题。

解决方法:

1.在数据库连接的url中添加?useSSL=false;
2.url中添加useSSL=true,并且提供服务器的验证证书。
我们在简单的学习过程中,只需要使用方法一,在连接后添加一个?useSSL=false即可

例如:

jdbc:mysql://localhost:3306/数据库名?useSSL=false
注意:一定是3306/数据库名后面加?useSSL=false


详解各个对象(查看API文档)

  • DrvierManager : 驱动管理对象
    功能:
    1. 注册驱动:告诉程序该使用哪一个数据库驱动jar包

    static void registerDriver(Driver driver) 注册给定的驱动程序DriverManager。
    代码使用:Class.forName(“com.mysql.jdbc.Driver”);
    查看Driver类源码发现:在com.mysql.jdbc.Driver类中存在静态代码块如下。

static{
     try{
         java.sql.DriverManager.registerDriver(new Driver());
     }catch(SQLException E)
     {
         throw new RuntimeException("can't register driver!");
     }
}

mysql5 之后的驱动jar包可以省略注册驱动的步骤,在jar包中的services 文件夹中有一个文件java.sql.Driver里面包含了注册驱动的代码,一旦编译器检测到代码中没有注册驱动的代码,就会调用jar包中的注册驱动代码。

2. 获取数据库连接
方法:static Connection getConnection(String url,String user,String password)
参数:
url:指定连接的路径
    * 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
    * 示例:jdbc:mysql://localhost:3306/db3
    * 注意:如果连接的是本机mysql服务器,并且mysql服务器默认端口是3306,则url可以简写为:jdbc:mysql:///db3
user:用户名
password:密码
  • Connection :数据库连接对象
  1. 功能获取:
    • 获取执行sql的对象
    • Statement createStatement()
    • PrepareStatement PrepareStatement(String sql)
  2. 管理事务:
    • 开启事务:void setAutoCommit(boolean autoCommit) 调用该方法设置参数为false,即开启事务
    • 提交事务:commit()
    • 回滚事务:rollback()
  • Statement :执行sql的对象

    1. 执行sql
    • boolean execute(String sql):可以执行任意的sql语句
    • executeUpdate(String sql):执行DML(增insert 删 delete 改 update 表数据)语句、DDL(create alter drop)语句
    > 返回值int:影响的行数,可以通过影响的行数判断DML语句是否执行成功,返回值大于0则执行成功,反之错误。
    
    • ResultSet executeQuery(String sql):执行DQL(select)语句
  • ResultSet :结果集对象

  • PrepareStatement :执行sql的对象

JDBC练习 update语句

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcDemo2 {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        //1.注册驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //2.获取连接对象
             conn = DriverManager.getConnection("jdbc:mysql:///db3?useSSL=false","root","******");
            //3.定义sql
            String sql = "update  dept  set dname = '富婆部' where id = 50";
            //4.获取执行sql对象
             stmt = conn.createStatement();
            //5.执行sql
            int count = stmt.executeUpdate(sql);
            //6.处理结果
            System.out.println(count);
            if(count > 0)
            {
                System.out.println("添加成功");
            }else{
                System.out.println("添加失败");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            //7.释放资源
            if(stmt != null)
            {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn != null)
            {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

JDBC练习 insert语句

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcDemo2 {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        //1.注册驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //2.获取连接对象
             conn = DriverManager.getConnection("jdbc:mysql:///db3?useSSL=false","root","******");
            //3.定义sql
            String sql = "insert into dept(id,dname,loc) values(50,'咸鱼部','西安')";
            //4.获取执行sql对象
             stmt = conn.createStatement();
            //5.执行sql
            int count = stmt.executeUpdate(sql);
            //6.处理结果
            System.out.println(count);
            if(count > 0)
            {
                System.out.println("添加成功");
            }else{
                System.out.println("添加失败");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            //7.释放资源
            if(stmt != null)
            {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn != null)
            {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值