Java连接mysql数据库方法及代码(jdbc)

编译器使用IDEA

我的相关博客:
java代码程序中连接mysql数据库的方法及代码
mysql数据库并发上锁问题,java代码

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

1.首先从mysql官网下载mysql-connector-java.jar包到本地。
这里注意要和你本地的mysql数据库版本相匹配!
在这里插入图片描述
下载相应的压缩包,在本地解压即可进行下一步操作。

2.打开自己的java文件,在源文件夹下创建lib包,如下。

关于这里为什么要使用新建lib文件夹并导入文件,相信不久小伙伴们就能知道原因了
因为这是为了便于你将文件发于别人后,依赖的mysql-connector-java.jar不见了(如果你将其放置在libraries中的话!!),自己新建文件夹即可在打包后依然拥有此文件。
在这里插入图片描述
找到本地的mysql-connector-java.jar文件,复制粘贴到lib文件夹里,并点击确认。
在这里插入图片描述
在这里插入图片描述
如上图。
3.配置相关依赖,这里有两种方式!!
第一种方式:直接将lib文件夹设置为library
在这里插入图片描述
点击ok即可!!

第二种方式:
首先右键点击工程文件夹,弹出如下窗口,点击Open Module Settings。
在这里插入图片描述
进入如下界面,点击+号
在这里插入图片描述
弹出选项,选择Jars or Directories选项,并在弹出后现在前面导入mysql-connector-java.jar的lib文件夹,点击确认。
在这里插入图片描述
在这里插入图片描述
成功应用后,勾选该文件,点击apply应用,OK即可正常使用。
在这里插入图片描述
4.数据库连接代码样例如下

package sql;

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

public class Conn { // 创建类Conn
    Connection con; // 声明Connection对象
    public static String user;
    public static  String password;
    public Connection getConnection() { // 建立返回值为Connection的方法
        try { // 加载数据库驱动类
            Class.forName("com.mysql.cj.jdbc.Driver");
            System.out.println("数据库驱动加载成功");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        user = "root";//数据库登录名
        password = "root";//密码
        try { // 通过访问数据库的URL获取数据库连接对象
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=gbk", user, password);
            System.out.println("数据库连接成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return con; // 按方法要求返回一个Connection对象
    }
    public static void main(String[] args) { // 主方法,测试连接
        Conn c = new Conn(); // 创建本类对象
        c.getConnection(); // 调用连接数据库的方法
    }
}

若上面不便于理解,则看下面代码,更为简洁:

package Main;

import java.sql.*;

public class JDBC {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
//        1.加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
//        2.用户信息和url
        String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=true";
        String username="root";
        String password="root";
//        3.连接成功,数据库对象 Connection
        Connection connection = DriverManager.getConnection(url,username,password);
//        4.执行SQL对象Statement,执行SQL的对象
        Statement statement = connection.createStatement();
//        5.执行SQL的对象去执行SQL,返回结果集
        String sql = "SELECT *FROM studentinfo;";
        ResultSet resultSet = statement.executeQuery(sql);
        while(resultSet.next()){
            System.out.println("SNo="+resultSet.getString("SNo"));
            System.out.println("SName="+resultSet.getString("SName"));
            System.out.println("Birth="+resultSet.getString("Birth"));
            System.out.println("SPNo="+resultSet.getString("SPNo"));
            System.out.println("Major="+resultSet.getString("Major"));
            System.out.println("Grade="+resultSet.getString("Grade"));
            System.out.println("SInstructor="+resultSet.getString("SInstructor"));
            System.out.println("SPwd="+resultSet.getString("SPwd"));
        }
//        6.释放连接
        resultSet.close();
        statement.close();
        connection.close();
    }
}

结果
在这里插入图片描述

代码解释:
Connection:连接对象,用于连接数据库。
官方文档有如下解释官方解释及涉及到的方法
在这里插入图片描述
Class.forName(“com.mysql.cj.jdbc.Driver”);为了加载jdbc的驱动。不使用该语句也能成功连接到mysql数据库。这里有一篇很好的文章对其有介绍
好奇的我在mysql-connector-java.jar中找到了这个东西!!
在这里插入图片描述
下面是Driver中的源码。可以从中看出,其作用就是进行注册Driver用。
在这里插入图片描述

 con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=gbk", user, password);

这里调用DriverManager.getConnection方法进行数据库连接,格式如上。
localhost:指定为本地。
3306:为数据库端口。
test1:为所需连接的数据库名。
useUnicode=true&characterEncoding=gbk:为添加编码和解码的格式要求。
useSSL:安全连接。
user和password:即是数据库用户名和密码。

完成以上操作即可成功连接数据库了。最后的主类是用于测试用的,在你的java文件中不必保留,只需要在需要进行数据库连接的文件中创建本类即可。

Talk is cheap,show me the code! —— 薪火工作室!


版权声明:本文为qq_52050769原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。