Logo

郎哥编程

连接MySQL数据库

2020-01-16 228

连接MySQL数据库,需要在程序中加载JDBC驱动程序,然后使用DriverManager类的getConnection()方法来连接MySQL数据库。连接步骤如下图所示:

image.png        

                                      

MySQL数据库连接步骤

(1)   加载JDBC驱动程序

所有的JDBC驱动程序都实现了java.sql.driver接口,加载JDBC驱动就是加载JDBC实现该接口的类,一般使用Class类的forName()方法加载该类,forName()方法要求传入包含加载类路径的文本串,也就是JDBC实现java.sql.driver接口的类所在jar包的路径。

基于MySQL8.0数据库的JDBC实现java.sql.driver接口的类路径为:

com.mysql.cj.jdbc.Driver

加载类文件的语句为:

Class.forName(“com.mysql.cj.jdbc.Driver”);

使用winrar软件直接打开mysql-connector-java-8.0.18.jar文件,即可发现JDBC实现java.sql.driver接口的类所在jar包的路径。

(2)连接数据库

加载JDBC驱动程序成功后,下一步就可以连接数据库。连接数据库要用到DriverManager类,DriverManager类在java.sql包内。它负责JDBC驱动程序的管理,作用于程序和JDBC驱动程序之间,跟踪可用的驱动程序,并在数据库的驱动程序之间建立连接。

它提供的主要方法就是得到一个数据库的连接,getConnection()方法用于连接数据库,并返回一个Connection对象。该方法说明如下:

static Connection  getConnection(String url)

该方法用于建立和数据库的连接,数据库的连接路径由参数url给出。它会从已加载的JDBC驱动程序集合中选择适当的驱动程序。

参数url为数据库的连接路径,连接MySQL数据库的路径格式为:

 jdbc:mysql://IP地址:端口号/数据库名称?key1=value1&……& keyn=valuen

其中“jdbc”为连接协议,“mysql”为连接的子协议,该子协议指定是连接mysql数据库,“IP地址:端口号”指定数据库所在主机的IP地址和数据库的监听端口,在实际连接中,使用主机的IP地址和数据库的监听端口号来代替。“数据库名称”指定要连接的数据库名称。在“数据库名称”后面的key和value键值对可以有多个,也可以没有,这些键值对为驱动程序提供附加的连接信息。

static Connection  getConnection(String url, String user, String password)

该方法用于建立和数据库的连接,数据库的连接路径由参数url给出,数据库的登录用户由参数user给出,数据库用户的登录密码由参数password给出。

如果待连接的数据库需要指定用户名和密码才能访问时,就需要使用该方法来连接数据库。

(3)操作数据库

数据库连接成功后,就可以进行数据库的查询、更新和写入操作。对数据库的所有操作都在Connection接口内,关于Connection接口的内容在后面的课程会陆续介绍。

(4)关闭数据库的连接

完成数据库的操作后,需要关闭数据库的连接,以释放数据库连接资源。Connection类的close()方法用于关闭与数据库的连接。

本课案例中涉及的数据库可以在课程资源下载,下载的数据库是SQL文件,可以使用MySQL命令导入下载的数据库。

案例1:建立ConnectionMySQLTest类,连接数据库。

在PCoreUnit11项目新建demo包,在demo包下新建ConnectionMySQLTest类。代码如下:

package demo;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
/** 
* @ClassName: ConnectionMySQLTest 
* @Description: 数据库编程(连接MyQL数据库)案例1
* @author 编程训练营 
* @date 
* 
*/
 
public class ConnectionMySQLTest {
 
    // 定义JDBC加载路径
    static String  jdbc = "com.mysql.cj.jdbc.Driver";
    // 定义MySQL数据库的连接地址
    static String  mysqlurl = "jdbc:mysql://localhost:3306/shop?serverTimezone=UTC";
    // 定义MySQL数据库的用户名
    static String  username = "root";
    // 定义MySQL数据库的用户名登录密码
    static String  password = "~123456q";
   
    /** 
    * @Title: main 
    * @Description: Java程序入口main方法  
    * @param @param args    参数 
   
    * @return void    返回类型 
    * @throws 
    */
 
    public static void main(String[] args) {
       Connection conn = null;
       try {
           // 加载JDBC驱动
           Class.forName(jdbc);
           // 连接数据库
           conn = DriverManager.getConnection(mysqlurl, username, password);
           if( null != conn )
           {
              System.out.println(conn);
              conn.close();
           }
           else
           {
              System.out.println("数据库连接失败");
           }
       } catch (ClassNotFoundException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (SQLException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
    }
 
}

代码中mysqlurl数据库路径说明如下:

(1)   localhost 是指本地IP地址;

(2)   MySQL数据库的默认端口号是3306;

(3)   shop是连接数据库的名称,shop数据库可以在课程资源区下载,下载后可导入到MySQL数据库;

(4)   serverTimezone键值对是用来设置时区,可以将serverTimezone设置为UTC,UTC表示的是全球标准时间。如果程序运行是在中国,一般将该值设置为GMT%2B8,即北京时间东八区。

代码中的username和password分别是登录数据库的用户名和登录密码。

程序执行结果如下图所示:

image.png

程序输出以上信息,表示数据库连接成功。

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论