发表于: 2017-08-30 23:09:01
1 1111
今天完成的事情:完完整整的重写了任务二 花的时间远比想象的要长 整整四个小时
从头开始 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
评论