发表于: 2017-08-30 23:09:01

1 1110


今天完成的事情:完完整整的重写了任务二 花的时间远比想象的要长 整整四个小时

                           从头开始  model层 dao层  service接口  都根据数据库和需求来写

                              这些没有犯错误  依赖一定要全

                          ssm整合的基本框架     spring的配置文件  springmvc配置文件       web.xml文件 

                                  Spring的配置文件也只有一些基本的配置  

                               dao层的xml文件  这里要注意 不要写错了

<mapper namespace="com.jnshu.dao.UserMapper">

配置数据源  开启注解 扫描所有包  构建工厂 扫描Mapper

   <context:component-scan base-package="com.jnshu" />
        <!--   配置数据源-->
   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="driverClassName">
           <value>com.mysql.jdbc.Driver</value>
       </property>
       <property name="url">
           <value>jdbc:mysql://localhost:3306/first_a?characterEncoding=UTF-8</value>

       </property>
       <property name="username">
           <value>root</value>
       </property>
       <property name="password">
           <value>123123</value>
       </property>
   </bean>
          <!--    -->
       <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
           <property name="typeAliasesPackage" value="com.jnshu.model" />
           <property name="dataSource" ref="dataSource"/>
           <property name="mapperLocations" value="classpath:/mapper/User.xml"/>
       </bean>
     <!--扫描Mapper文件-->
   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
   <property name="basePackage" value="com.jnshu.dao"/>
</bean>

                  springmvc配置文件  这个也很平常 一般这里也要重新 扫描一下注解

web。xml文件 配置一下Spring文件 配置log4j

然后再index.jsp里面写点东西 就能成功跑出来 

然后就是接口实现 以及controller  还有controller 返回的jsp文件

这里拿update举例子 接口实现很简单

public int update(User user) {

int i=dao.update(user);
   return i;
}

这里不能返回对象 否则一直报错就是昨天那个错误 

这里改成了int 实际返回的int毫无用处 

controller 这里用了@ResponseBody 来把List返回成字符串 这里昨天日报写过了

@RequestMapping(value = "/a/student/update/json2",method = RequestMethod.POST)
public @ResponseBody
List<User> contrl2 (HttpServletRequest request, HttpServletResponse response, Model model, User user){
log.info("入参"+user);
   int i=this.userService.update(user);
   user=userService.get(user.getId());      看这里
   log.info("chucan"+i);
   model.addAttribute("category", user);
   List<User> list=new ArrayList<User>();
   list.add(user);
  model.addAttribute("category", i);
   log.info("list"+list);
   return  list;
}

这里要注意的是 原来没有写那一行 导致如果只更新一个字段 其他字段默认为空

在日志里看到传入的全部默认为空 但是数据库并未改变 

这里就是更改完相应的字段后 再次执行查询 把其他字段get出来

然后还有一些相关的返回jsp页面                                   

明天计划的事情:任务三研究学习 拆分禅道
遇到的问题:主要解决昨天的问题 也遇到了新的错误

mybatis一个怪异的问题: Invalid bound statement not found

这个网上总结的特别好 大神级 摘抄一下

三种情况:

1.

<mapper namespace="me.tspace.pm.dao.userdao">  

mapper的namespace写的不对!!!注意系修改。


2.

userdao的方法在userdao.xml中没有,然后执行userdao的方法会报此

3. userdao的方法返回值是list<user>,而select元素没有正确配置resultmap,或者只配置resulttype!

4. 如果你确认没有以上问题,请任意修改下对应的xml文件,比如删除一个空行,保存.问题解决...

今天还有一个奇怪的错误 t提示dao异常 看了半天才发现 配置文件里dao部分值里面的路径少了一个.

收获:重写代码还是很有意义的 从流程上 实际需求实现上  包括一些错误 解决 都让自己的理解更加深入

         发现了自己以前理解的一些不对的地方

禅道 http://task.ptteng.com/zentao/my-task.html


返回列表 返回列表
评论

    分享到