【8013】解决通过JDBC连接数据库new Driver()出现报错?

【8013】解决通过JDBC连接数据库new Driver()出现报错?

问题背景:

今天下午回顾以前的知识点,复习到JDBC连接数据库,这段代码起码写了十几遍了,应该不会写错,意外却出现了爆红,和以前写的代码对比,发现原来是最不起眼的导包出现了问题,idea将 Driver驱动导入的是import java.sql.Driver下的包,而不是我需要的com.mysql.cj.jdbc.Driver下的包,当然老版本的是com.mysql.jdbc.Driver下的包:
在这里插入图片描述


解决方案:


方法一:直接将sql的包注释掉,换成import com.mysql.cj.jdbc.Driver;


在这里插入图片描述


方法二:(比较麻烦)
在Driver前面加上com.mysql.cj.jdbc.Driver(高版本例如我现在用的8.0.26)或com.mysql.jdbc.Driver(低版本例以前用的5.7):


在这里插入图片描述


原因分析:


1.这个错误是idea自行导入另外一个包的错误,想要找出来问题出错的原因(导入那个包):就要了解使用Driver的需求是用来干嘛的,如下列代码:

Driver driver = new Driver();//com.mysql.cj.jdbc.Driver
DriverManager.registerDriver(driver);

2.连接数据库之前完成注册驱动:先创建数据库驱动,然后调用registerDriver()方法完成注册,所有导入com.mysql.cj.jdbc.Driver(进行数据库连接的)下的包无可厚非。


小叙一会:


上一周通过layui框架的支持做了一个小项目(毕业设计基于物业的管理系统),为了赶项目,遇到问题直接CSDN,最后项目是做出来了,但是做项目遇到的一些问题自己也没总结,还有四天就放国庆节,乘着这个时间好好总结一下,才能更好的学习接下来的mybitis、spring等框架知识,慢慢来吧,人生需要细水长流,Java人是一辈子的事情。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,切换到Oracle数据库报错Error querying database. Cause: java.lang.NullPointerException,这种错误通常是由于连接Oracle数据库出现问题导致的。以下是可能导致此错误的一些原因和解决方法: 1. 检查连接Oracle数据库的URL、用户名和密码是否正确,可以尝试重新输入或更改它们。 2. 检查Oracle数据库是否已启动,如果没有启动,请启动它。 3. 检查Oracle数据库的防火墙设置,确保允许从应用程序服务器访问Oracle数据库。 4. 检查应用程序服务器上的Oracle JDBC驱动程序版本是否与Oracle数据库版本兼容,如果不兼容,请升级驱动程序版本。 5. 检查应用程序服务器上的JDK版本是否与Oracle JDBC驱动程序版本兼容,如果不兼容,请升级JDK版本。 6. 检查应用程序服务器上的数据库连接池配置是否正确,可以尝试重新配置连接池。 7. 检查应用程序服务器上的防火墙设置,确保允许从应用程序服务器访问Oracle数据库。 8. 检查应用程序服务器上的Oracle JDBC驱动程序是否正确安装,如果没有安装,请安装它。 以下是一个可能的解决方案: ```java // 导入Oracle JDBC驱动程序 import oracle.jdbc.driver.OracleDriver; // 连接Oracle数据库 Connection conn = null; try { // 注册Oracle JDBC驱动程序 DriverManager.registerDriver(new OracleDriver()); // 连接Oracle数据库 conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "username", "password"); } catch (SQLException e) { e.printStackTrace(); } // 执行SQL查询 Statement stmt = null; ResultSet rs = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT * FROM table_name"); while (rs.next()) { // 处理查询结果 } } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭数据库连接 try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值