Controller、Service注解,以及Mybatis的x

2019-02-22  本文已影响0人  素雪浮尘

一、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的转义字符

&lt; < 小于
&gt; > 大于
&amp; & 与
&apos; ' 单引号
&quot; " 双引号

<![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> 
上一篇下一篇

猜你喜欢

热点阅读