二 mybatis直接使用映射文件

映射文件Mapper.xml:


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  
<!-- namespace:命名空间,类似java中的包名(不能重复)
id:类似java中的类名(不同的命名空间可以有相同的id)
 -->
<mapper namespace="a">


  
   <!--    
    使用 #{键}方式 实际上 是使用 占位符  ? 来替代 
    使用 ${键}方式 实际上 是使用值 直接替换对应的键 注意 如果是字符串 手工添加  ''        
    -->
   <select id="selectFoodByParam" resultType="java.util.Map">
    select * from foods where price=${myprice} and foodname='${myfoodname}'
   </select>
   
  
</mapper>

foods表:

foodid  number 主键,

foodname varchar2(20),

price number



测试类:


public class MyBatisTest {


public static SqlSession getSession() throws IOException{
String resource = "mybatis配置文件路径";
InputStream inputStream = Resources.getResourceAsStream(resource);

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session=sqlSessionFactory.openSession();
return session;
}

/*
*直接调用映射文件中定义的sql语句:传入的参数可以是Map,对象
*/


@Test
public void testObject() throws IOException{

SqlSession session =getSession();
//传入一个对象,对象的属性名和参数名对应
Food food=new Food();
food.setMyfoodname("青椒肉丝");
food.setMyprice("100");
//a.selectFoodByParam=namespace.id
List list=session.selectList("a.selectFoodByParam",food);

//当查询的结果只有一行时,可以使用selectOne()方法
System.out.println(list);
}

@Test
public void testMap() throws IOException{
SqlSession session =getSession();

//传入一个Map,Map的键和参数名对应
Map map=new HashMap();
map.put("myprice", 100);
map.put("myfoodname", "青椒肉丝");
List list=session.selectList("a.selectFoodByParam",map);
System.out.println(list);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值