实现maven项目连接mysql数据库

在maven项目下新建class文件,编辑该文件,部分具体代码如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public static void main(String[] args) {Connection conn = null;try{String url = "jdbc:mysql://主机名或IP地址:端口号/数据库名称(可选)";String sql_user = "数据库连接用户名";String sql_pwd = "数据库连接密码";Class.forName ("com.mysql.jdbc.Driver");conn = DriverManager.getConnection (url,sql_user,sql_pwd);System.out.println ("Database connection established");}catch (Exception e){e.printStackTrace();}finally{if (conn != null){try{conn.close ();System.out.println ("Database connection terminated");}catch (Exception e) { /* ignore close errors */ }}}}

选中pom.xml文件右键选择【run as】>【maven clean】
在【console】里面显示【build success】则说明执行【maven clean】成功


接着继续选中pom.xml文件右键选择【run as】>【maven test】

在【console】里面显示【build success】则说明执行【maven test】成功

选中新建的class文件,右键选择【run as】>【java application】
运行后出现了错误“java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
原因
该问题产生是因为缺少jar的导入
解决方案
查找错误“java.lang.ClassNotFoundException: com.mysql.jdbc.Driver”的步骤一般分为4步:

  • 查看pom.xml文件中是否导入了 “mysql-connector-java” 这个jar包,即引用相关依赖代码
  • 右击项目,选择【run as】>【maven test】或【maven install】下载可能缺失的jar包
  • 或将自行下载的jar包复制到项目中,并且选中该jar包右键【build path】>【add to build path】
  • 查看数据库连接信息是否有细微的小错误
    故首先对pom.xml文件进行查看,发现其中确实缺少相关的依赖代码,故在maven网上仓库中查找“mysql”,选择MySQL Connector/J>选择最新版本

    将其中的依赖代码复制到pom.xml文件中,具体代码如下:
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version>
</dependency>

保存全部后,再次运行【maven clean】和【maven test】

再次对新建的class文件执行【run as】>【java application】
再次出现了报错信息,信息内容是“Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
原因
该错误是由于数据库驱动com.mysql.jdbc.Driver已经被弃用了,应当使用新的驱动com.mysql.cj.jdbc.Driver
解决方案
将新建class文件中的Class.forName ("com.mysql.jdbc.Driver");修改为Class.forName ("com.mysql.cj.jdbc.Driver");后保存全部
再次运行【run as】>【java application】

由上图可知,已运行正常且不再有报错了,就此结束在maven项目中连接数据库的操作。

封装类:

可以单独将数据库连接写成一个单独的类,方便以后的调用,部分具体代码如下:

import org.testng.annotations.Test;
import org.testng.Assert;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;public class dbConnet {  private static final String DRIVER = "com.mysql.cj.jdbc.Driver";private String database = "数据库名称";private String URL = "jdbc:mysql://主机名或IP地址:端口号/数据库名称(可选)" + database + "?characterEncoding=utf8&useSSL=true"; private static final String USER = "数据库连接用户名"; private static final String PASSWORD = "数据库连接密码"; @Testpublic Connection dbCon()//public static void dbCon() //用于验证是否执行{ Connection con = null; try { Class.forName(DRIVER);//加载驱动程序   con = DriverManager.getConnection(URL, USER, PASSWORD); //System.out.println("已成功连接数据库!");    //用于验证是否执行} catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(null, "加载驱动器失败", "数据库连接", JOptionPane.ERROR_MESSAGE); } catch (SQLException e) { JOptionPane.showMessageDialog(null, "注册驱动器失败", "数据库连接", JOptionPane.ERROR_MESSAGE); } //System.out.println("已执行该程序!");  //用于验证是否执行return con; }}

对上述代码进行解释,其中:

  1. private是指“私有的”,是权限修饰符,用于属性和方法(不用于类,否则其他任何外部对象都无法访问到该类)。
    ●变量一般使用private进行声明,若外部对象需要访问使用private声明的属性则需要依靠该类中的set(用于赋值)和get(用于获取)方法。

  2. static是指“静态”,是属于类的,而不属于任何对象
    ●被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问,即不需要通过创建实例对象或是使用this才能对其进行访问;
    ●在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用,但是在非静态成员方法中是可以访问静态成员方法/变量的,如果说想在不创建对象的情况下调用某个方法,就可以将这个方法设置为static
    ●静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化,其初始化顺序按照定义的顺序进行初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响;
    ●Java中的static与C/C++中的static不同,Java中的static关键字不会影响到变量或者方法的作用域。在Java中能够影响到访问权限的只有private、public、protected(包括包访问权限)这几个关键字;
    ●静态变量虽然独立于对象,但是不代表不可以通过对象去访问,所有的静态方法和静态变量都可以通过对象访问(只要访问权限足够)。

  3. final是指“最后”,是个修饰符,它可以用来修饰类,类的成员,以及局部变量。
    ●如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承,但可以继承其他类。因此一个类不能既被声明为 abstract的,又被声明为final的;
    ●将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

  4. 注意:若方法有返回值,则在执行maven test时将被忽略。

java maven项目连接mysql数据库相关推荐

  1. IDEA项目连接MySQL数据库

    IDEA项目连接MySQL数据库 一.前提 电脑已经安装好IntelliJ IDEA.MySQL和SQLyog并配置好,博主使用版本: 1)IntelliJ IDEA 2018.2.2 2)MySQL ...

  2. Intellj IDEA添加MySQL数据库以及项目连接Mysql数据库

    添加数据库 View->Tool Windows->datebase->"+"->Data Source->MySQL 输入自己MySQL用户名和密码 ...

  3. jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...

    Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...

  4. ASP.NET Core Web项目连接MySQL数据库

    作者在新建了一个ASP.NET Core Web项目的基础上,想连接本地的Mysql数据库,参考了很多博客,各种各样的说法都有,多少让人有感凌乱!自己最后捣鼓成功了!所以写一篇博客,以便后人查阅! 操 ...

  5. Java原生代码连接MySQL数据库

    本章我们介绍, 如何用java原生代码实现连接MySQL数据库并实现基本的增,删,改,查操作. 为了便于演示,首先我们使用Navicat Premium新建一个user表并添加如下数据: ​​​​​​ ...

  6. java写一个窗体并连接MySQL_大神帮忙写一个简单地java页面,连接MySQL数据库之后能够显示数据库上的数据...

    展开全部 用jdbc 连接mysql数据库就行了,网上搜下一大把. --记得在classpath下加入mysql 的jdbc驱动包. /** * @author :来e68a84e8a2ad32313 ...

  7. java jdbc 连接mysql数据库,Java 通过JDBC连接Mysql数据库

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

  8. JAVA的JDBC连接MYSQL数据库并查询数据

    目录 一.使用工具 1)MYSQL数据库 2)Navicat可视化软件 3)IDEA编译java工具 二.MYSQL里创建一个数据库 1)Navicat连接数据库 2)创建新的数据库和表 1.新建数据 ...

  9. Java web 服务器连接MySQL数据库代码

    文章目录 前言 一,建立工程 二,导入jar包 三,编写DataBase类实现连接数据库与操作数据库 四,效果图 参考文章 前言 经过前面的环境部署,今天我们终于可以来连接数据库了.参考我之前的文章. ...

最新文章

  1. Typora输出表情 Typora_Smile
  2. SAP SD基础知识之免费订单
  3. windows系统下Python环境的搭建及Selenium的安装
  4. htaccess分布式配置文件常用写法
  5. OpenGL Tessellation and Geometry Shaders镶嵌和几何着色器的实例
  6. OSX 挂载 NTFS 格式硬盘
  7. 洛谷P4133 [BJOI2012]最多的方案(记忆化搜索)
  8. 设计模式笔记五:原型模式
  9. 2015-12-02 定时自动执行存储过程
  10. 数据结构上机实践第10周项目1 - 二叉树算法验证
  11. 数据结构与算法python—9.二叉树及python实现
  12. linux麒麟认证,【麒麟在线讲堂】优麒麟生物特征认证系统-03驱动开发
  13. Java中通过流下载文件
  14. T分布和T检验的理解,Python代码实现T检验的计算
  15. 2021年天猫淘宝双12,京东双十二活动时间以及玩法介绍
  16. QQ群排名霸屏技术居然是这样简单
  17. java的package怎么用_Java包(Package)的详细用法(转)
  18. UI设计师未来的发展趋势
  19. Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: “/sear
  20. Google将Linux客户端研发的主力放到中国

热门文章

  1. 一款开源的 GIF 在线分享 App,乐趣就要和世界分享。
  2. 在电脑上怎么做判断题打√或x_电脑组装与维护 课后测试题与答案
  3. 中国石油大学《日常礼仪系列》在线考试
  4. ubuntu20安装stunnel
  5. 在某国使用1角、2角、5角的硬币可以组成1元钱。编程输出有多少种组成方法。
  6. 系统背景描述_2021年申请第一枪!CA系统公布2020-2021文书题目!
  7. Spring注解驱动开发第53讲——Servlet 3.0与Spring MVC的整合分析
  8. git配置及同步项目代码到本地
  9. Android使用APT编译时注解生成代码
  10. 微信小程序+.NET(八) 小程序之web-view讲解