为何我的JDBC程序总是出错?是哪里的问题呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为何我的JDBC程序总是出错?是哪里的问题呢?相关的知识,希望对你有一定的参考价值。

通过截图的日志看,是mysql的驱动类配置有问题,mysql5及以下版本使用的驱动类是com.mysql.jdbc.Driver,而mysql6及以上版本得使用新的驱动类com.mysql.cj.jdbc.Driver。

    更改Class.forName("com.mysql.cj.jdbc.Driver");

    另外确保你的url数据库名称及用户名与你在cmd/shell中保存一致,截图上来看正确的数据库名称是fred。

    登录名一般是root,同第二点,请核对吧。

追问

抱歉之前一直没登录 上班会收手机和电脑 等回去试试驱动地址

参考技术A 解决办法:
1、mysql 8.0的驱动类地址错了
Class.forName("com.mysql.cj.jdbc.Driver");
2.url地址:jdbc:mysql://localhost:3306/fred //数据库名称小写
3、用户名称:root //小写

你明白了吗?
参考技术B 最上面提示你换新驱动类,但只是一个提示,不是导致程序退出的原因。

真正的报错的原因应该是连接数据库失败(授权失败),可能是用户名或密码写错了,而且这个是分大小写的,要检查下。
如果真有"Root" 这个用户,且密码也正确,那么用户没有 Fred 这个库的权限也连接不上。
参考技术C 看错误是登录失败
用户名root是大写开头吗
参考技术D 用户名密码错了

邮件发送失败的原因是啥?为何总是发不出去呢?

发送失败的原因可能如下

1、网络是否正常,其他访问是否正常,对方将你设为黑名单,拒绝接收你的邮件。

2、由于长期登录,对方邮箱处于非活动状态。

3、电子邮件地址不存在或错误。

4、对方邮箱已满。

5、邮箱域名不正确。

电子邮件

电子邮件是整个网络间以至所有其他网络系统中直接面向人与人之间信息交流的系统,它的数据发送方和接收方都是人,所以极大地满足了大量存在的人与人之间的通信需求。

电子邮件指用电子手段传送信件、单据、资料等信息的通信方法。电子邮件综合了电话通信和邮政信件的特点,它传送信息的速度和电话一样快,又能像信件一样使收信者在接收端收到文字记录。

参考技术A 邮件失败原因主要包含了如下:
1、550 Mail content denied
这个是指邮件内容被拒收,这种失败的解决方案:用户更换邮件内容或者添加服务器IP白名单就可以,也可以采用Rushmail邮件群发平台来发送。

2、550 Connection denied
这个是指该服务器IP的发信频率大幅度超过比如收信服务商的限制。解决方案:需要采用不同的发送服务器来发送,也可以采用Rushmail邮件群发平台来发送,平台底层发送机制是多服务器,多IP循环发送,也支持多通道,多域名,多账号循环投递,从技术上的角度可以保证短时间内批量发送邮件到达率。

3、550 5.5.0 Invalid EHLO/HELO domain
这个错误提示指的是收信邮箱不存在。解决方案:需要用户跟对方确认邮箱的真实性。
4、status=deferred
用户把发送邮件当作垃圾邮件过滤掉了 解决方案:修改邮件内容也可以采用Rushamail邮件群发平台里面的邮件垃圾评分比例的功能,判断一下邮件内容进垃圾箱的概率,提前对内容做好更新,可以大大降低进垃圾箱的概率。

5、status=bounced (host mx54.dns.com.cn[220.181.130.176]said: 550 Does not like recipient,your mail is rejected! (in reply to end of DATA command)); sender non-delivery notification: F20F2DD80FC;removed
这个是指对方某一台收件服务器当时正处在繁忙之中或者我们的服务器和对方链接并不是很顺畅。解决方案:有可能是暂时的情况,用别的地址测试一下,看看是否被退信,或者过一段时间再发送一下,使用Rushmail邮件发送平台底层有自动重复投递机制,可以避免因为这个原因导致邮件发送失败,也可以帮助企业提高工作效率以及送达率。
6.status=bounced
sender non-delivery notification: 9CC7FDD8084; removed ;status=bounced 550 User not found; sender non-delivery notification: 8FD7CA00013A; removed
这个是指邮箱地址写错或者是邮件地址不存在。解决方式:核对地址后重新发送

7、status=bounced 553 5.7.3 CONTENT
Recipient address rejected: User unknown in local recipient table
这种的话:1)内容被拒绝,可能是收件人对所接收的邮件进行了设置,内容中含有特定词汇等会被拒绝 ,2)收件人地址被拒绝。解决方案:修改邮件内容或者采用Rushmail邮件群发平台来发送,Rushmail会提供专门的售后客服一对一的指导,给到用户建议,包括模块的制作,关键词避免,发送周期,发送频率等,可以提高邮件的发送效果。
8、sender non-delivery notification: C6A3BDD8078; removed
这个是指:邮件过大,超出对方邮箱邮件接收范围。解决方案:对方换账号,重新发送。

以上是邮件群发时会经常遇到的邮件发送失败情况,如您有不清楚的,可以联系Rushmail邮件发送平台客服,可以给您详细解答。
参考技术B 一般主要原因要么是你的收件人地址有误,或者看是不是服务器故障,再者的话就是文件内存过大。我们公司这边用的顺邮文件传输系统,没有出现过你说的这个问题,发送个几百G的文件也是速度很快的。你可以先排查下,如果是内存受限的话,真的建议你们可以换个邮件系统了。本回答被提问者采纳 参考技术C 你好。邮件发送失败的原因是。对方的邮箱地址,或者是邮箱账号,一定要书写正确。如果对方使用拼音字母作为邮箱地址。你一定要区分大小写。只要你的邮箱地址填写的正确。任何邮箱的邮件都可以发送成功的。你试试吧。 参考技术D 保持你的网络正常信号好,却保联网。你发的邮件人地址要正确。

以上是关于为何我的JDBC程序总是出错?是哪里的问题呢?的主要内容,如果未能解决你的问题,请参考以下文章

我的linux装linux版的qq时,总是提示缺少插件.这是为何呢?

我在哪里下载 DB2 8.1 的 jdbc 驱动程序?

fortran程序总是出现四个错误,求大神帮忙看看哪里出错啦,拜托拜托

连接 jdbc odbc 驱动程序时出错

C语言中怎样修改宏定义呢

为何要去写博客