MyBatis动态SQL

动态SQL是根据参数数据动态组织SQL的技术

Mapper XML:

复制代码
    <select id="dynamicSQL" parameterType="java.util.Map" resultType="com.MyBatis.entity.Goods">
        select * from t_goods
        <!--where会对子SQL进行判断,确保符合SQL语法-->
        <where>
            <if test="categoryId != null">
                and category_id = #{categoryId}
            </if>
            <if test="currentPrice != null">
                and current_price &lt; #{currentPrice}
            </if>
        </where>
    </select>
复制代码

测试方法:

复制代码
@Test
    public void testDynamicSQL(){
        SqlSession sqlSession=null;
        try{
            sqlSession=MyBatisUtils.openSession();
            Map param = new HashMap();
            param.put("categoryId",44);
            param.put("currentPrice",500);
            List<Goods> list = sqlSession.selectList("goods.dynamicSQL", param);
            for(Goods g: list){
                System.out.println(g.getTitle()+":"+g.getCategoryId()+":"+g.getCurrentPrice());
            }
        }catch (Exception e){
            if(sqlSession!=null){
                sqlSession.rollback();
            }
            throw e;
        }finally {
            MyBatisUtils.closeSession(sqlSession);
        }
    }
复制代码

 

posted @   南风知君  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示