mybatis-查询练习

今天使用mybatis进行数据库的查询练习

1、最基本的练习:查询数据库的全部信息和根据参数进行查询。这个没有什么体会,只是增加了自己对于maven操作mybatis的熟悉程度。

  这个里面有几个注意事项:

*参数占位符:
1、#{},会替换成?,防止sql注入
2、${},拼接sql语句,会发生sql注入问题

*参数类型:parameterType指定返回参数类型,一般省略
*特殊字符
1、转义字符
2、CDATA区

2、动态sql查询,用于条件查询当中

使用if标签,test里面放条件
字符解决
1、恒等式 1=1
2、where标签 在mybatis中可以智能识别
<select id="selectByCondition" resultMap="brandResultMap">
        select *
        from tb_brand
        <where>
            <if test="status != null">
                and status = #{status}
            </if>
            <if test="companyName != null and companyName != ''">
                and company_name like #{companyName}
            </if>
            <if test="brandName != null and brandName != ''">
                and brand_name like #{brandName};
            </if>
        </where>
    </select>

这是用户输入全部参数的情况。

 

<select id="selectByConditionSingle" resultMap="brandResultMap">
        select *
        from tb_brand
        where
        <choose> <!--相当于Switch-->
            <when test="status != null">
                status = #{status}
            </when><!--相当于case-->
            <when test="companyName != null and companyName != ''">
                companyName = #{companyName}
            </when>
            <when test="brandName != null and brandName != ''">
                brandName = #{brandName}
            </when>
            <otherwise><!--相当于defaulr-->
                1 = 1;
            </otherwise>
        </choose>;
    </select>

在条件查询中,用户不可能总是输入全部参数,这时候就需要判断用户是否输入参数,使用choose、when、otherwise标签进行查询,他们在mybatis中同样也是被智能识别的。

 

我一共学习了三种知识对数据库进行查询,第一种是jdbc,这个我认为最麻烦,而且限制性很高;第二种是Druid,代码量减少了,逻辑也更为清晰,但仍然不够灵活;现在练习的mybatis,最大的特点是灵活性很高,许多东西不需要再使用js,直接再数据库操作语句进行限制即可,但是maven和mybatis的环境配置比较繁琐,操作还是很简单的。

posted on 2022-07-01 16:37  跨越&尘世  阅读(35)  评论(0编辑  收藏  举报