bug之路(持续更新)

1.java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

mysql-connector-java-5.1.37-bin.jar已导入,还出现这种情况……
原来是我把lib目录放到了web目录下 (错误)
web项目必须把lib目录放在web/WEB-INF目录下。(正确)


2.页面显示不出数据库的数据

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

在这里插入图片描述
在这里插入图片描述
然后愣是没取出数据。

经老师解答,原来是登录成功后,是跳转到服务器对应的路径,而不是直接跳转页面。跳转到服务器对应的路径后,服务器查询的结果再转发到页面。

在这里插入图片描述
然后就成功地显示数据了!

3.获取当前登录的用户名+积分累加

在这里插入图片描述
用户名和积分是怎么显示的呢?
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
然后怎么知道当前登录的用户名并给他积分充值呢?
在这里插入图片描述

在这里插入图片描述
遇到的问题及解决方法:

  • 登录后显示的积分为0,和数据中的积分不一致

    int oldPoint = userDao.findPoint(username).getPoint();
    session.setAttribute("point",oldPoint);
    
  • 数据库中更新不了积分,但是SQL语句没错,原来是我并没有获取当前用户的用户名

    String username = (String) session.getAttribute("username");
    
  • 给用户充值积分,数据库中的积分更新了,但是浏览器页面上的积分显示的是充值后的积分,并没有累加积分

    //获取之前的积分
    int oldPoint = userDao.findPoint(username).getPoint();
    //充值后的积分
    int allPoint = Integer.parseInt(point)+oldPoint;
    
    //向数据库中更新总积分
    userDao.updatePoint(username,allPoint);
    //更新当前页面显示的积分
    session.setAttribute("point",allPoint);
    

4.重定向时,request中的数据会丢失

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
虽然使用转发后,会有相应的提示。但是登陆成功跳转到首页,提示语为null;而且充值积分时,提示语为null。
这时就想到给登陆的Servlet和充值积分的Servlet,设置提示语为空,但是结果还是null。
然后又将request改为session,登陆成功和积分充值时,提示语就为空了。成功了!
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

效果图:
在这里插入图片描述

5.JavaWeb之删除

在列表的删除那里,发送一个"deleteStudent?sno=$ {stu.sno}“的请求,映射到DeleteStudentServlet类中,该类根据URL请求里面的参数sno获取到该学生的sno,通过studentService.deleteStudent(sno)删除数据库中的该学生的信息,最后重定向到"/gotostudentlist"请求中,通过该请求回到学生的列表页面。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6.JavaWeb之修改

在列表的修改那里,发送一个"findStudentBySno?sno=$ {stu.sno}“的请求,映射到FindStudentBySnoServlet类中,该类根据URL请求里面的参数sno获取到该学生的sno,然后根据sno查找到该学生的全部信息,再将查询到的数据设置到request中,进行页面的转发,让studentUpdate.jsp展示查到的数据。studentUpdate.jsp页面中是用EL表达式获取到request设置的值,比如获取学号${student.sno},这时输入框就能保留学生的信息。然后我们可以在原信息的基础上进行修改,修改完毕提交表单,请求的地址是"updateStudent”,映射到UpdateStudentServlet类,该类能获取修改后输入框的值,然后创建了student对象,通过studentService.updateStudent(student)修改数据库中的数据,最后重定向到"/gotostudentlist"请求中,通过该请求回到学生的列表页面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.JavaWeb项目引入jQuery无效,报404

在这里插入图片描述
原来是我把js包放到了web/WEB-INF目录下 (错误)
静态资源(css/js/img)应放到web目录下。(正确)
在这里插入图片描述
在这里插入图片描述

8.输入框为空时不能提交并给出提示&&msg文字不见了

msg里的文字显示不出是因为颜色问题,改一下颜色就行了。
在这里插入图片描述
在这里插入图片描述

9.关于提交时输入项判断

当电话和身份证都正确时,才能提交。
否则只要一个不对,就不能提交,还要给出相应的提示。

原始:
在这里插入图片描述
修改后:
在这里插入图片描述
但发现录入成功后竟然没有提示???
然后我把上面两张图截下来放到画图工具中,经过短暂分析,诶,有了。
然后就有了下面一张图片:
在这里插入图片描述
经过这次小小的功能完善,发现分析能力很重要,别盲目不思考地敲代码。
有时候做不出就停下来,重整旗鼓,认真分析。适当停下来是好的,但别像这次一样,做了好久做不出来就产生逃避心理,犯拖延,一直拖了2个星期,才回头做。

10.视图解析器配置jsp文件的路径前缀和后缀问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.在用Mybatis,新增数据为null

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

然后我把enctype="multipart/form-data"删掉后,就可以啦。
在这里插入图片描述

12.在用Mybatis,数据的增删改提交事务后,数据库的数据没有改变

在这里插入图片描述
如果把表的引擎改为MyISAM,就不用担心事务问题,增删改不提交事务同样可以修改数据库的数据。
在这里插入图片描述
factory.openSession(true);默认为false,我修改为true,竟然可以了诶。
发现虽然是成功了,但是日志里没有DEBUG [main] - Committing JDBC Connection。不清楚为什么没有。

13.关于静态资源访问问题

在这里插入图片描述
如果是*.do的话,就不用考虑静态资源访问的问题了,因为可以访问呀。
在这里插入图片描述
但是从*.do修改为/后,就不能访问静态资源了。
有两种方法可以解决:
方法一:
在springmvc.xml中添加:
在这里插入图片描述
方法二:
在springmvc.xml中添加:
在这里插入图片描述
location:表示静态资源所在目录
mapping:表示对该资源的请求
在这里插入图片描述

但是,在搭建SSM环境时,配置了各种xml文件,我的静态资源文件还是访问不了。
在这里插入图片描述
在不断试错中,终于找到了。
在这里插入图片描述
classpath和classpath*区别:
classpath:只会到你的class路径中查找找文件。
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找。

一开始,去掉*的时候,项目启动不了,然后我就关闭项目,双击clean:clean,然后再启动Tomcat,还是不行,然后点击Rebuild Project后再启动Tomcat就可以了。
在这里插入图片描述

14.自动生成的mapper没有selectByPrimaryKey

使用反向生成插件时,发现自动生成的mapper没有selectByPrimaryKey。
在这里插入图片描述
我一开始使用的是mysql-connector-java-8.0.12.jar,发现mapper没有selectByPrimaryKey方法。
在这里插入图片描述
然后我把数据库驱动换成mysql-connector-java-5.1.40.jar,竟然有selectByPrimaryKey方法诶。
在这里插入图片描述

15.从页面获取日期数据,避免NULL转换为Date类型出问题

如果实体类中的日期类型需要从页面获取数据,避免NULL转换为Date类型出问题。

有两种解决方法。
方法一:实体类的日期类型属性上添加注解@DateTimeFormat(pattern = “yyyy-MM-dd”)
在这里插入图片描述

方法二:在Controller里使用注解@InitBinder
在这里插入图片描述

16.反向生成的Example类的方法

在这里插入图片描述

在这里插入图片描述

17.日期格式化

在这里插入图片描述
在这里插入图片描述
该时间是从1970年1月1日到此时时间的毫秒值。


在这里插入图片描述
@JsonFormat(pattern = “yyyy-MM-dd”,timezone = “GMT+8”)
格式化时间,设置时区

@DateTimeFormat(pattern = “yyyy-MM-dd”)
将前端传来的值进行格式化
在这里插入图片描述

18.springboot—Tomcat端口号修改

Tomcat默认端口号为8080
在这里插入图片描述
由于我的8080端口号已被占用了,访问不了,不得不更改端口号。
在这里插入图片描述


server.port=8888
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
成功了!

顺便附上pom.xml文件和HelloController代码,springboot真的太方便了,不用配置那么多的xml文件与jar包依赖!
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

19.System.out::println

发现一个有意思的代码 System.out::println
在这里插入图片描述
三种方法输出结果一样。
在这里插入图片描述

20.动态查询

发现tk mybatis和mybatis plus不能实现动态查询,一些特定需求的查询需要编写映射文件。

UserDao.xml:
在这里插入图片描述
UserDao.java:
在这里插入图片描述
UserService.java:
在这里插入图片描述
UserController.java:
在这里插入图片描述
list.html:
在这里插入图片描述
在这里插入图片描述
可对姓名模糊查询、可对邮箱模糊查询、可对姓名和邮箱一块模糊查询、不输入时查询全部。

21.java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider.()

在这里插入图片描述
在这里插入图片描述

22.使用postman测试增加数据时数据为null

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是时间问题不会解决,干脆不传值给它,所以上面的图片里时间是null。

23.springboot访问HTML

在这里插入图片描述

在这里插入图片描述

24.layui表格使用报错

由于我使用的框架是springboot,所以也用到了thymeleaf,注意静态资源的路径。
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后我把表头那里修改了下,诶可以了。
在这里插入图片描述
在这里插入图片描述
它提示说返回的数据不符合规范,正确的成功状态码应为:“code”:0
因为layui默认的数据格式是这样的:
在这里插入图片描述
在这里插入图片描述
然后我的数据是这样的:
在这里插入图片描述
就修改了下代码
在这里插入图片描述
然后浏览器上就可以看到数据了。
在这里插入图片描述

只不过点击页码没有反应,它的分页功能不生效。

25.layui分页功能

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
但是我的分页数据是这样的,
在这里插入图片描述
在这里插入图片描述
所以需要对页码和每页数据量的名称做更改,
在这里插入图片描述
在这里插入图片描述
搞定!

26.使用layui的select数据回显问题

在这里插入图片描述

在这里插入图片描述
看着一点问题都没有啊。
在这里插入图片描述
可是为什么没有回显到页面呢?然后点开下拉菜单,发现
在这里插入图片描述
然后增加了两段代码,
在这里插入图片描述
在这里插入图片描述

可能是使用了layui的问题吧。

如果不是使用layui,是不需要加那两段代码的。
在这里插入图片描述
或者直接加layui.form.render();这一段代码来重新渲染表单也可。

27.layui自带的表格  ajax异步  查询  展示数据

在这里插入图片描述
注意:上方的代码select那里还有一点瑕疵,就是如果查询项全部都为空的话,则查出无数据,因为它传的typeId = -1,而后台并没有匹配的typeId,所以这时只需要将代码改为<option value="">请选择类型</option>的话,就可以查出全部数据了。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

28.导入镜像的网络配置问题

1.打开,选择镜像,然后输入账号密码
在这里插入图片描述
2.进入配置

cd /etc/sysconfig/network-scripts  #进入网络配置
vi ifcfg-ens33  # 进入改配置

在这里插入图片描述

service network restart #重启网络

3.配置虚拟网络编辑器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后这时就可以ping通本机了,ping www.baidu.com也可以了。
在这里插入图片描述
在这里插入图片描述
4.连接数据库
在这里插入图片描述
发现出现这样的错误
在这里插入图片描述
然后我进入数据库
在这里插入图片描述
首先这里的账号密码都是root

mysql> grant all privileges on *.* to root@'localhost' identified by '设好的密码';
mysql> flush privileges;

在这里插入图片描述

这里的密码随便可以设,但是用Navicat 连接数据库的时候,密码也得是这里设好的密码。
注意:密码就此更改了。
进入数据库:mysql -uroot -p123

在这里插入图片描述

点击编辑,密码重新修改为123,就连接成功了。
在这里插入图片描述
完毕!

29、springboot request.getServletContext().getRealPath 上传文件 获取到临时路径

在这里插入图片描述
仅在工程目录下,新建public文件夹,就可以了。
在这里插入图片描述
在这里插入图片描述

30、-bash: python: command not found

在这里插入图片描述
执行ln -s /usr/bin/python3.6 /usr/bin/python即可。

31、vue ui

在这里插入图片描述
解决:
C:\Users\Administrator路径下的.vuerc文件修改
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值