Controller、Service注解,以及Mybatis的x
一、Controller
@Controller
用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法。通俗来说,被Controller标记的类就是一个控制器,这个类中的方法,就是相应的动作
@ResponseBody
将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中
@RestController
相当于@ResponseBody + @Controller合在一起的作用
@RequestMapping
用来处理请求地址映射的注解@GetMapping:@RequestMapping(method =RequestMethod.GET)
@PostMapping:用于增加
@PutMapping:@RequestMapping(method =RequestMethod.PUT) ,用于更新
@DeleteMapping
@PatchMapping
参数注解
- @RequestBody User user
将请求参数写入到user对象中- @RequestParam
指明请求的参数- @Vaild
验证参数的合法性- @PathVariable
处理动态的URL
/*
* 请求参数必须为id,不指定名称时,为personId
* required = false表示参数可不传
* defaultValue参数为空时默认赋值
*/
@RequestMapping(value = "/id")
String getIdByValue(@RequestParam(value="id",required=false,defaultValue="1001") String personId) {
System.out.println("ID is " + personId);
return "Get ID from query string of URL with value element";
}
//动态的URL
@RequestMapping(value = "/fetch/{id}", method = RequestMethod.GET)
String getDynamicUriValue(@PathVariable String id) {
System.out.println("ID is " + id);
return "Dynamic URI parameter fetched";
}
二、Service
@Service("userService")
告诉Spring,当Spring要创建UserServiceImpl的的实例时,bean的名字必须叫做"userService"
三、Mapper
@component
把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>
例如:解决ServiceImpl声明Mapper时报错
四、mybatis的转义字符
< < 小于
> > 大于
& & 与
' ' 单引号
" " 双引号
<![CDATA[ ]]>符号
<![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]>
五、mybatis的xml标签
参考文章:https://blog.csdn.net/weixin_40950778/article/details/78655288
mybatis标签if 标签的使用
SELECT * from STUDENT ST
<if test="studentName != null and studentName != '' ">
WHERE ST.STUDENT_NAME LIKE CONCAT(CONCAT('%', #{studentName}),'%')
</if>
foreach 标签的使用
delete from user where id in
<foreach collection="array" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
choose 标签的使用
SELECT * from STUDENT ST
<choose>
<when test="studentName != null and studentName != '' ">
WHERE ST.STUDENT_NAME LIKE CONCAT(CONCAT('%', #{studentName}),'%')
</when>
<otherwise>
</otherwise>
</choose>
where 标签使用
<select id="getStudentListWhere" parameterType="StudentEntity" resultMap="studentResultMap">
SELECT * from STUDENT ST
<where>
<if test="studentName!=null and studentName!='' ">
ST.STUDENT_NAME LIKE CONCAT(CONCAT('%', #{studentName}),'%')
</if>
<if test="studentSex!= null and studentSex!= '' ">
AND ST.STUDENT_SEX = #{studentSex}
</if>
</where>
</select>
set 标签使用
<update id="updateStudent" parameterType="StudentEntity">
UPDATE STUDENT_TBL
<set>
<if test="studentName!=null and studentName!='' ">
STUDENT_TBL.STUDENT_NAME = #{studentName},
</if>
<if test="studentSex!=null and studentSex!='' ">
STUDENT_TBL.STUDENT_SEX = #{studentSex},
</if>
</set>
WHERE STUDENT_TBL.STUDENT_ID = #{studentID};
</update>