IDEA使用JDBC连接MySQL数据库,看完就懂

要好好的

都会好起来的。

JDBC连接MySQL数据库

    • 1.使用MySQL jdbc连接器mysql-connector-java.jar。
    • 2.加载驱动
    • 3.创建链接
    • 4.创建statement对象
    • 5.执行SQL语句
    • 6.关闭资源

1.使用MySQL jdbc连接器mysql-connector-java.jar。

1.首先从mysql官网下载mysql-connector-java.jar包到本地。
这里注意要和你本地的mysql数据库版本相匹配!

创建java项目,导入mysql-connector-java-8.0.13.jar包
IDEA使用JDBC连接MySQL数据库,看完就懂_第1张图片

2.加载驱动

有两种写法:

  1. 利用java.sql.DriverManager.registerDriver( )方法加载驱动。
DriverManager.registerDriver(new com.mysql.jdbc.Driver());

该方式不但强烈依赖数据库的驱动jar而且会导致驱动被重复注册2次。故,不建议使用

所以我们使用第二种,通过反射加载。

2.通过反射加载

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

为什么会有两种呢?

这里请看这位博主的:
com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的区别

3.创建链接

利用java.sql.Drivermanager类中的getConnection()方法与数据库建立连接。
语法如下:

DriverManager.getConnection(“jdbc:mysql://数据库地址:端口号/数据库名”,”用户名”, “密码”);

示例如下:

Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/mydb”,”root”,123456);
String url="jdbc:mysql://localhost:3306/mydb";
String user="root";
String password="123456";
Connection connection=DriverManager.getConnection(url, user, password);
        

在该语法及其示例中,jdbc表示协议,mysql表示子协议,localhost代表数据库地址,3306表示端口号,
mydb表示要连接的数据库;第一个root表示用户名,第二个123456表示密码

DriverManager.getConnection()方法返回的是java.sql.Connection类型的对象。

4.创建statement对象

利用java.sql.Connection创建用于执行SQL语句的Statement。

示例如下:

Statement statement = connection.createStatement();

Connection的createStatement()方法返回的是实现java.sql.Statement接口的对象。java.sql.Statement接口用于操作SQL语句并返回相应的结果集

5.执行SQL语句

利用java.sql.Statement执行SQL语句,其常用方法如下:

execute(String sql )
该方法可以执行任意SQL语句。当且仅当执行select语句且有返回结果时该方法返回true, 其他情况下该方法返回false

executeUpdate(String sql )
该方法常用于执行DML( INSERT、UPDATE或DELETE)和DDL语句。执行DML语句时返回受SQL语句影响的行数,执行DDL语句时返回0

executeQuery( String sql)
该方法通常执行査询语句,执行后返回代表结果集的ResultSet对象
示例如下:

ResultSet  resultSet = statement.executeQuery(sql);

在该示例中statement.executeQuery( )方法返回的是实现java.sql.ResultSet接口的对象。

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

Connection connection = null;
Statement statement=null;
ResultSet resultSet=null;

connection = DriverManager.getConnection(url, user, pwd);
            //3.获取数据库操作对象
            statement = connection.createStatement();
            //4.执行SQl语句
            String sql = "insert into t_user(no,name,pwd) values (5,'iah','123')";
            //5.获取结果集 
            ResultSet  resultSet= statement.executeUpdate(sql);
            System.out.println(resultSet);
//释放资源
resultSet.close();
statement.close();
connection.close();

6.关闭资源

数据库资源非常宝贵,数据库允许的并发访问连接数量有限。因此,当数据库资源用完后切记释放资源。为了保证资源的释放,常在finally代码块中关闭与数据库操作相关的资源。

完整代码实列:

public class Student {
    private int studentID;
    private String studentName;

    public Student() {
    }

    public Student(int studentID, String studentName) {
        this.studentID = studentID;
        this.studentName = studentName;
    }

    public int getStudentID() {
        return studentID;
    }

    public void setStudentID(int studentID) {
        this.studentID = studentID;
    }

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    @Override
    public String toString() {
        return "Student{" +
                "studentID=" + studentID +
                ", studentName='" + studentName + '\'' +
                '}';
    }
}

public class TestJDBC {
    public static void main(String[] args) {
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        try {
            //加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            //建立连接
            connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb" , "root", "123456");
            //创建statement
            statement = connection.createStatement();
            String sql = "select * from student";
            //执行SQL
            resultSet = statement.executeQuery(sql);
            //处理结果
            while (resultSet.next()) {
                Student student = new Student();
                int id = resultSet.getInt("studentid");
                String name = resultSet.getString("studentname");
                student.setStudentID(id);
                student.setStudentName(name);
                System.out.println(student);
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
            //关闭资源
        }finally {
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                resultSet = null;
            }

            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                statement = null;
            }

            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                connection = null;
            }

        }

    }
}



从现在做起,坚持下去,一天进步一小点,不久的将来,你会感谢曾经努力的你!

如果又出错的,请各位友友指正。

请添加图片描述

新人报到,各位友友们,给我个三联(点赞,关注,收藏)

你可能感兴趣的:(MySQL,数据库,mysql,intellij-idea)