发表于: 2017-05-08 21:49:50

2 1238


今天完成的任务:

   今天主要完成了登录页面成功跳转.先贴上代码

   controller,控制页面的跳转,接受从jsp页面传入的参数


在这里卡了好久,主要遇到三道关.

     第一mybatis中resultType类型转变为resultMap.

传入参数的时候,需要用到两个参数,name,password.但是resultType类型需要和泛型list<Student>严格匹配,导致参数无法被mybatis读取,找了半天(真的是半天),查找各种资料,借鉴了胡靖和吴志勇师兄的任务,才发现是参数类型问题.

     第二修改为resultMap,又卡了几个小时(这一次是细节问题,在修改为resultMap的时候,最后一个方法的参数类型没有改正过来,导致一直报错,最后是莎莎师兄发现了问题,这会已经十个小时过去了),最后还有一个sql语句语法问题,自己写成

 <select id="getByNameAndPwd"  resultMap="studentBaseMap">

      select * from student where name=#{name},password=#{password}

  </select>

这里是联合查询,需要两个字段都起作用才可以,应该写成

 <select id="getByNameAndPwd"  resultMap="studentBaseMap">

      select * from student where name=#{name} and password=#{password}

  </select>

     第三终于不报错了,也能访问到数据库,但是做判断跳转的时候,不管输入登录页面上面参数,它都跳转到allStudent页面,而不是密码不匹配的时候跳转到登录页面.还是莎莎师兄,我用的跳转控制判断不严谨,建议调用size()方法.这次终于完整的实现了登录访问.

遇到的问题:

    基础知识很重要,mybatis水很深,resultMap涉及到高级功能,一对多,多对多,多对一的联表查询,比单表查询的resultType灵活,也更复杂,可以应对很多应用场景,不需要实体Po和数据库表单一严格匹配,在这个任务之前只知道单一的套sql语句.

    细节习惯问题,养成良好的编程习惯很重要,先从低级的错误开始查找,再判断是否环境变量问题,最后才怀疑业务逻辑功能是否实现,否则一团浆糊,不容易把问题整明白.

    对Java语言还没有深入理解,调用方法的时候时刻要记着,可以调用的不只是本类的方法,还有继承的父类方法,这里getByNameAndPwd()调用了继承自List类的size()方法,很好的解决了判断密码是否正确的问题,要再次明确,当jre加载的时候,从Object和Class开始一个类背后已经站着许多为它服务的父类,它们当中有很多有用的方法.

    每一个环节出现问题,都会让项目无法运行,逻辑上一定要顺序,不然排错会很费时间.

收获:

    报错了才能学到知识,深以为然!加油!

明天的任务:

    结束任务五,开始任务六!


    



返回列表 返回列表
评论

    分享到