0
点赞
收藏
分享

微信扫一扫

011.Mybatis中SQL传参

i奇异 2022-11-05 阅读 57

1.在good.xml中编辑sql语句(单参数)

<!-- 单参数传递,使用parameterType指定参数的数据类型即可,SQL中#{value}提取参数-->
<select id="selectById" parameterType="Integer" resultType="com.imooc.mybatis.entity.Goods">
select *
from t_goods
where goods_id = #{value}
</select>

1.1在MybatisTest.java中增加测试用例

/**
* 传递单个SQL参数
*
* @throws Exception
*/
@Test
public void testSelectById() throws Exception
{
SqlSession session = null;
try
{
session = MyBatisUtils.openSession();
Goods goods = session.selectOne("goods.selectById", 1603);//1603代表传入的参数
System.out.println(goods.getTitle());
}
catch (Exception e)
{
throw e;
}
finally
{
MyBatisUtils.closeSession(session);
}
}

2.在good.xml中编辑sql语句(多参数)

<!-- 多参数传递时,使用parameterType指定Map接口,SQL中#{key}提取参数   #{limt}代表多少条数据-->
<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>

2.1在MybatisTest.java中增加测试用例

/**
* 传递多个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);
}
}

 



举报

相关推荐

0 条评论