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);
}
}