mybatis三种(查询,参数传递)

MyBatis中三种查询方式

Mapper文件代码

<mapper namespace="com.java.mapper.FlowerMapper">      
    <select id="selectAll" resultType="flower">           
        select *  from   flower         
    </select>          
    <select id="selectOne" resultType="flower">    
        select *  from flower  where  id=1   
    </select>               
    <select id="selectMore" resultType="map">     
        select  *  from  flower           
    </select>      
</mapper>

测试文件

 public static void main(String[] args) throws IOException {
        //[1]解析mybatis.xml        
        InputStream is = Resources.getResourceAsStream("myBatis.xml");                        
        // [2]获得session工厂        
        SqlSessionFactory  factory=new SqlSessionFactoryBuilder().build(is);
        //[3]获得session对象       
         SqlSession session = factory.openSession();                        
        // [4]执行查询操作                        
        // √【A】查询方式一 使用于查询多条数据的时候          
         List<Flower> list = session.selectList("com.bjsxt.mapper.FlowerMapper.selectAll");                  
        // √【B】查询方式二   适用场景:查询最多是条数据的时候       
          Flower fl = session.selectOne("com.bjsxt.mapper.FlowerMapper.selectOne");                  
        // 【C】查询方式三  selectMap("执行的方法","希望数据库的哪一列作为key")         
        // 适用的场景 :查询的时候可以快速的通过某一列确定对应的数据          
        Map<Object, Object> map = session.selectMap("com.java.mapper.FlowerMapper.selectMore", "id");   
              Object fl = map.get(2);          
         System.out.println(fl);                  
        // [5]关闭session          
         session.close();                        }
    }
}

MyBatis中三种参数传递

Mapper层代码


<!--方式一   public Flower  selectOne2(Integer  id) -->   
<select id="selectOne2" resultType="flower" parameterType="int">  
    select  *  from  flower  where  id=#{param1}          
</select>          
<!--方式二   public   Flower  selectOne3(Flower fl);  -->  
<select id="selectOne3" resultType="flower" parameterType="flower">  
<!--id=#{对象中的属性名}  -->       
select  *  from  flower  where  id=#{id}  and  name=#{name}  
</select>
<!--方式三   public   Flower  selectOne3(Flower fl);  -->    
<select id="selectOne4" resultType="flower">            
select  *  from   flower  where  id=${a}  and name=${b}   
</select>

测试文件

//【A】参数传递一
 Flower fl = session.selectOne("com.java.mapper.FlowerMapper.selectOne2", 1);
// 【B】参数传递二
// Flower fl=new Flower();
fl.setId(1);
 fl.setName("玫瑰花");
// 【C】参数传递三
 Map<String,Object>  map=new HashMap<>();
map.put("a", 1);
map.put("b", "'玫瑰花'");
Flower flo = session.selectOne("com.java.mapper.FlowerMapper.selectOne4", map);
System.out.println(flo);

[1]mybatis中parameterType 这个属性可以省略的 但是 resultType 是不可以省略的
[2]#{} 相当于占位符 ${} 相当于拼接

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AloneDrifters

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值