昨日份的bug
(今天主要是划水了,因为今天下午不上班,笑出声系列)
不会改bug的程序员不是好游客。
昨天本来是要实现网页的跳转和对数据库的增删改查操作的,但是小马虎同学还是把一个地方给敲错了,然后还抱着这波我必不可能错的态度检查了半个下午加一个晚上,最后还是没有发现问题,所以昨天的日记也只能草草收尾了。今天上午请教了一波老师,老师一眼就看出了症结所在(姜还是老的辣呀,改bug还得老油条)。问题就处在昨天的UserMapping.xml文件
resultType用于返回,因为下面sql语句的功能是得到userinfo表中的用户信息,所以返回值的类型因该是实体类UserInfo,而不是返回一个IUserDao接口。
还有就是id设置方法名的时候不用加"()",正确的代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zhongruan.dao.IUserDao" >
<select id="findAll" resultType="com.zhongruan.bean.UserInfo">
select * from userinfo
</select>
</mapper>
页面跳转的实现
首先我们用超链接(后面还会涉及到好几种不同的方法实现页面的跳转,到时候再说)实现一个页面的跳转。
1)打开index.jsp文件。在body标签中加入一个a标签,用于给出一个超链接。
具体代码如下:
<!--防止中文乱码-->
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<html>
<body>
<h2>Hello World!</h2>
<!--超链接-->
<a href="${pageContext.request.contextPath}/user/findAll.do">查询所有用户</a>
</body>
</html>
网页运行效果如下,可以看到在Hello World!下面多了一个可以点击的超链接"查询所有用户"
点击一下这个按钮就可以进入到我们的allUser.jsp页面,如下图所示:
可以看到查询的结果已经显示在网页里了,和我们昨天准备的数据库中的数据完全一致。
新增方法的实现
1)在UserController包的UserController类中加入如下的代码:
@RequestMapping("/toAddUser.do") //点击新增按钮之后跳转到addUser.jsp
public String toaddUser(){
return "addUser";
}
@RequestMapping("/addUser.do")
public String addUser(UserInfo userInfo){
userService.addUser(userInfo);
return "redirect:/user/findAll.do"; //执行完addUser方法后跳转到findAll方法执行跳转到主界面
}
2)在dao包的IUserDao接口中加入如下代码:
public int addUser(UserInfo userInfo);
3)在impl包的UserServiceImpl类中加入如下代码:
@Override
public int addUser(UserInfo userInfo){
return userDao.addUser(userInfo);
}
4)在IUserService接口中加入如下代码:
public int addUser(UserInfo userInfo);
5)在mapper包的UserMapper.xml中加入如下代码:
<insert id="addUser" parameterType="UserInfo">
insert into userinfo(username,password) values(#{username},#{password})
</insert>
#{}中的参数是从网页中获取的,#{username},#{password}的参数来自下面这两个地方:
6)打开addUser.jsp,将save.do改成addUser.do,然后把红色方框的那行删掉就行,因为在数据库中将id设置为了自增,所以就不用在添加的时候再输入id了
改好后如下图所示
到这里添加操作就应该是全部都修改好了。
7)测试一下,进入页面后点击添加按钮,界面成功跳转至新增用户页面,然后再输入想要添加的用户名和密码,如下图所示:
点击添加,页面跳转回findAll的界面,刚刚输入的新用户已经被成功的添加到了我们的数据库里面,如下图所示:
(这里添加进去后的id为7的原因是楼主之前一共添加了三个新的用户用于测试代码,测试完成后就删掉了,但是数据库中的自增加是不会因为删除操作而重新继续编号的,所以这一次新建的用户id就变成了7,要想id按删掉后的表继续加1的增长的话就要用到数据库的指令了,感兴趣的小伙伴可以自行百度解决方案,楼主这里就不做修改了)
不知不觉就又到1点了嗷(但是这个文章可能要到明天上午才能发出来,因为好像半夜发的文章都会卡在审核那),扯点有的没的吧,今天回来的比较晚,错过了晚上的查寝还被老师训斥了一波,不过今天在宁波玩得还是很开心的,到宁波也算是又一个星期了,这里给我最深的印象就是,我感觉这里的人对待食物的态度真的很认真,不管是大店小店吃的东西都能兼顾味道的同时又可以保持不错的卖相,店里的服务态度也很好,给这里点个赞好吧,八说了,明天早上还要上班。
工作繁忙,告辞。