关于JAVA Maven项目连接mysql数据库

2024-04-23 1124阅读
 本文作为个人学习笔记

一、Maven依赖

   mysql
   mysql-connector-java
   8.0.28

此处使用8.0.28版本,关于mysql更多依赖版本查阅:https://mvnrepository.com/artifact/com.mysql/mysql-connector-j

关于JAVA Maven项目连接mysql数据库
(图片来源网络,侵删)

 二、代码总览

import java.sql.*;
public class ToolMySQL {
    private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";   //驱动器
    private static String PORT;                                          //端口号
    private static String HOSTNAME;                                      //地址
    private static String DATABASE = String.valueOf(' ');             //数据库名称
    private static String USER;                                          //用户名
    private static String PASS;                                          //密码
    private static Connection connection = null;
    private static Statement statement = null;
    public static void StartMySQL(){
        final String DB_URL = "jdbc:mysql://" + HOSTNAME + ":" + PORT + "/" + DATABASE;
        try {
            Class.forName(JDBC_DRIVER);                                  //加载JDBC驱动程序
            connection = DriverManager.getConnection(DB_URL,USER,PASS);  //建立数据库连接
            statement = connection.createStatement();                    //实例化Statement对象,执行sql语句
        } catch (ClassNotFoundException e) {
            throw new RuntimeException("无法加载驱动程序",e);
        } catch (SQLException e) {
            throw new RuntimeException("无法连接到数据库",e);
        }
    }                     //建立数据库连接
    public static void EndMySQL(){
        try {
            if (ToolMySQL.statement != null) {
                ToolMySQL.statement.close();
            }
        } catch (SQLException e) {
            throw new RuntimeException("关闭Statement失败",e);
        }
        try {
            if (ToolMySQL.connection != null) {
                ToolMySQL.connection.close();
            }
        } catch (SQLException e) {
            throw new RuntimeException("关闭connection失败",e);
        }
    }                     //关闭数据库连接
    public static Boolean ExecuteSQLNotResult(String sql){
        try {
            return statement.execute(sql);                               //执行sql语句(返回是否成功)
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }                     //执行无结果的sql语句(建表)
    public static ResultSet ExecuteSQLWithResult(String sql){
        try {
            return statement.executeQuery(sql);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }                     //执行有结果的sql语句(查询)
    public static void setPASS(String pass) {
        PASS = pass;
    }
    public static void setUSER(String user) {
        USER = user;
    }
    public static void setDATABASE(String database) {
        DATABASE = database;
    }
    public static void setHOSTNAME(String hostname) {
        HOSTNAME = hostname;
    }
    public static void setPORT(String port) {
        PORT = port;
    }
    public static void setAll(String port,String hostname,String database,String user,String pass){
        ToolMySQL.PORT = port;
        ToolMySQL.HOSTNAME = hostname;
        ToolMySQL.DATABASE = database;
        ToolMySQL.USER = user;
        ToolMySQL.PASS = pass;
    }
}

 三、部分详解

1、指定驱动器

private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";   //驱动器

本部分指定jdbc驱动器类名,使用Class.forName()以加载数据库驱动程序

2、指定数据库

final String DB_URL = "jdbc:mysql://" + HOSTNAME + ":" + PORT + "/" + DATABASE;

本部分指定所需数据库的url链接,(注:在测试过程中,DATABASE需默认为' '),所需变量

HOSTNAME:服务器地址(本地为localhost)

PORT:端口号(mysql数据库默认为3306)

DATABASE:数据库(所需建立连接的数据库名称)

此处认为一般而言数据库的连接不会中途修改url连接,定义为常量

3、创建与数据库连接

connection = DriverManager.getConnection(DB_URL,USER,PASS);  //建立数据库连接

本部分通过jdbc的DriverManager类,使用getConnection方法连接数据库,连接过程中需要给出所需连接的数据库,用户名和密码。

4、创建执行对象

statement = connection.createStatement();                    //创建Statement对象,执行sql语句

本部分在创建数据库连接后创建statement对象以执行sql语句

5、执行sql语句(有结果、无结果)

statement.execute(sql);
statement.executeQuery(sql)

sql语句分为两种,有结果(select),无结果(insert,updata),对于无结果的sql语句则使用.execute方法,对于有结果的sql语句使用executeQuery方法,该方法返回一个ResultSet类型结果集

6、获取结果数据

对于该结果集,需要获取其中数据:

.next()方法,resultset类似于c语言的指针,该方法用于将resultedet移至下一行并返回该语句的执行结果(Boolean)

.getxxx()方法,如.getInt(),该方法用于获取resultset当前所在行的特定数据类型的数据

.getObject()方法,该方法可传入Int或String类型数据,用于确定所需列,返回object类型数据,需要进行类型转换

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]