博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

mybaties入门---环境搭建

Posted on 2021-06-06 22:46  海绵谷  阅读(39)  评论(0编辑  收藏  举报

1.以maven、springboot为基础脚手架。
2.新建一个maven项目
3.前端页面bootstrap、bootstrap-table、layer、jquery
4.后端mybatis、工具类Guava、参数校验validation等
5.controller类上必须加@Validate,参数校验@NotBlank 才能生效。

@RestController
@RequestMapping("/webApi")
@Validated
public class ApiController {
    @GetMapping("allUser")
    public List<AppUser> allUser(@NotBlank String name){
       return null;
    }
  
}

6.mybatis sql 标签的作用

<sql id="dto">
       id,name,phone,email,aboutme,avatar,type,create_time,enable,agency_id
    </sql>
    <select id="getUser" resultType="AppUser">
        SELECT <include refid="dto" />FROM USER order by id desc
    </select>

7.mybatis 模糊查询 bind 标签的作用可以用来绑定变量,可防止sql 注入

<select id="queryUser" resultType="AppUser">
        select
        <include refid="dto" /> from USER where
        <if test="phone != null and phone != ''">
            <bind name="uphone" value="'%'+phone+'%'"/>
            phone like #{uphone}
        </if>
         <if test="name != null and name != ''">
             <bind name="uname" value="'%'+name+'%'"/>
             and name like #{uname}
         </if>
         order by id desc
    </select>

8.动态sql 标签,where \ if test="",这里注意下,在代码里做了控制,每次只允许用一个参数不为空,两个为空,所以这里没加 and

<select id="getUserByEmPhoneName" parameterType="java.util.HashMap" resultType="AppUser">
        select
        <include refid="dto" /> from USER where
         <if test="name !=null and name != ''">
             name = #{name}
         </if>
        <if test="email != null and email != ''">
            email = #{email}
        </if>
        <if test="phone != null and phone != ''">
            phone = #{phone}
        </if>
    </select>

9.新增记录的时候主键自增、前提数据得支持自增,使用useGeneratedKeys属性

    <insert id="insert" parameterType="AppUser" useGeneratedKeys="true">
        insert into  USER(name,phone,email,passwd,avatar,type,create_time,enable,aboutme)
        values (#{name},#{phone},#{email},#{passwd},#{avatar},#{type},#{createTime},#{enable},#{aboutme})
    </insert>

11.mybatis foreach标签的使用

   <insert id="deleteUser" parameterType="java.util.List">
        UPDATE USER SET enable = '1' where id in
        <foreach item="item" collection="list" separator="," open="(" close=")" index="">
               #{item}
        </foreach>
    </insert>

12.案例完成简单增删改查,需求如下:

案例demo下载地址
13.nginx作为本地文件服务器的配置--readme.txt