Servlet访问数据库问题汇总

Q1:无法使用Servlet无法访问SQL Server 2022

A1:首先检查连接池中的JDBC连接代码是否正确

其次检查是否安装并导入了相应的驱动器

安装:直接上网搜相应SQL Servlet的驱动器并安装到电脑中

导入:项目\toWebContent\toWEB-INF\tolib,右击然后点击Import

选择General目录下的File System并点击Next

 

点击Browse...选择相应SQL Servlet的驱动器的安装路径然后点击Finish

至此,相应SQL Servlet的驱动器导入完毕。但是这种方法存在许多不兼容问题(我整了半天也没成功),容易失败。

Q2:不兼容问题

A2:世上无难事,只要肯放弃,面对不兼容问题我们就可以选择转用MySQL(老师教的。。。)

一下是我参考的MySQL的安装方法:MySQL数据库下载及安装教程(最最新版)_mysql下载安装-CSDN博客

PS:安装过程中会有一些不同的步骤,可以先往下看(具体原因我也不知道为啥,但是安装得非常顺利)

Q3:报错java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

A3:这个主要还是权限问题

首先还是要检查一下连接池中的JDBC连接代码是否正确(具体代码如下,是已经解决了Q3,Q4,Q5的最终版)

//servlet初始化时执行,完成了两步工作加载驱动和建立连接
      String driver = "com.mysql.cj.jdbc.Driver";//mysql驱动名称
      String dburl = "jdbc:mysql://127.0.0.1:3306/webstore?useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
      //jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
      String username = "root";
      String password = "你的登陆密码";

其次检查userName和Password是否正确(我刚开始用的是我自己后来创建的数据库用户和密码就无法连接成功,后来改成用户root的名字和密码就可以了)

Q4:报错The last packet sent successfully to the server was 0 milliseconds ago. 

A4:将url地址中的useSSL=true改成useSSL=false(我刚开始看课本上写的是useSSL=true,上述连接池版本已经是改正过的最终版)

Q5:报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

A5:出现了乱码,我们直接考虑字节编码的问题,于是我们在连接池中添加上语句:&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

将乱码的字节编码转为UTF-8编码(上述连接池版本已经是改正过的最终版)

PS

进行查询测试查不出东西可能是表中没有数据,可以先添加一条数据再进行尝试;

在MySQL中句末要加分号表示语句结束才能执行语句(这点与SQL Server不同)

以上,就是我遇到的所有问题,供大家参考

特别鸣谢:洛枭大大(感谢大佬的指点~~)

  • 29
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值