发表于: 2020-06-01 22:09:57
1 1457
今天完成的事情:
1. 修改数据库,增加了图片表
2. 写了一部分的 service 及其测试类
链接附在日报下面,因为功能没写完还没有合并到主分支,点开其他分支就可以看到。
遇到的问题:
1. 版本兼容性
SpringMVC 最麻烦的就是配置,写代码就是一把梭,随写随测根本没什么大问题。配置我也不知道怎么去测,直到写个 service 跑通了才放心,今天又让这个配置折腾了好久。
最大的问题就是依赖的兼容性,这个东西也没个表,跑通了就是兼容,跑不通那个报错反正也不会提到什么兼容的问题,你自己折腾去吧,就很迷。
项目使用 spring 5.2.5,依次遇到了 mybatis 版本低不兼容,junit 不兼容
最后使用的依赖及其版本如下:
mybatis 3.5.4(原不兼容的版本是3.2.1)
junit 4.12(原不兼容的版本是4.11)
2. mapper.xml 文件读取不到
原来的项目 mapper.xml 文件我都是放在 resources 文件夹中,resources 配置文件没有的话影响立竿见影(里面还有 spring 的配置文件),马上就能修正,但是这次我把 mapper.xml mapper.java 放在同一个文件夹,花了点时间才想到这个问题···
解决方法:修改 pom.xml 文件,在 build 标签下添加以下内容
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
这样的话编译之前 xml 放在那里,编译之后就会复制到相同的路径。
明天的计划:
1. 梭完 service 并且测试
收获:
1. mybatis @Param 注解
Dao 层的入参注解 @Param
不使用 @Param 注解:
参数必须是 javaBean(mapper.xml 里只能引用 JavaBean 的属性)
参数只有一个 > 引用参数的形式有且仅有:#{userid} (参数名任意写)
参数有多个的 > 在 xml 中引用有两种形式:
a,mybatis 配置为 <setting name="useActualParamName" value="false" />
#{0} #{1} #{2}```` 或者 #{param1} #{param2}```
b,mybatis 配置为 <setting name="useActualParamName" value="false" />
#{arg0} #{arg1} ``` 或者 #{param1} #{param2} ```
使用 @Param 注解:
参数有多个的时候可以取别名 @param("userid") int id,这样在 xml 中就可以使用 #{userid}
引用参数的形式:#{userid} / ${userid}
@Param 注解适用场景:
- 参数需要取别名 ,这样在 xml 里看起来更直观
User getUserByUsername(@Param("name") String username);
今天的我也很菜
评论