1.形式
2. 单参数传递,使用parameterType指定参数的数据类型即可,SQL中#{value}提取参数parameterType="Integer"
2.1 goods.xml
<!-- 单参数传递,使用parameterType指定参数的数据类型即可,SQL中#{value}提取参数--> <select id="selectById" parameterType="Integer" resultType="com.imooc.mybatis.entity.Goods"> select * from t_goods where goods_id = #{value} </select>
2.2 测试语句
/** * 传递单个SQL参数 * * @throws Exception */ @Test public void testSelectById() throws Exception { SqlSession session = null; try { session = MyBatisUtils.openSession(); Goods goods = session.selectOne("goods.selectById", 1609);//1603代表传入的参数 System.out.println(goods.getTitle()); } catch (Exception e) { throw e; } finally { MyBatisUtils.closeSession(session); } }
3.多参数传递时,使用parameterType指定Map接口,SQL中#{key}提取参数 ,查询价格的范围parameterType="java.util.Map"
3.1 goods.xml
<!-- 多参数传递时,使用parameterType指定Map接口,SQL中#{key}提取参数 --> <select id="selectByPriceRange" parameterType="java.util.Map" resultType="com.imooc.mybatis.entity.Goods"> select * from t_goods where current_price between #{min} and #{max} order by current_price limit 0,#{limt} </select>
3.2 测试语句
/** * 传递多个SQL参数 * * @throws Exception */ @Test public void testSelectByPriceRange() throws Exception { SqlSession session = null; try { session = MyBatisUtils.openSession(); Map param = new HashMap(); param.put("min", 100); param.put("max", 500); param.put("limt", 10); List<Goods> list = session.selectList("goods.selectByPriceRange", param); for (Goods g : list) { System.out.println(g.getTitle() + ":" + g.getCurrentPrice()); } } catch (Exception e) { throw e; } finally { MyBatisUtils.closeSession(session); } }
标签:传参,Exception,goods,param,session,007,SQL,参数 From: https://www.cnblogs.com/LLL0617/p/16920578.html