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

2021/4/19 10:56:32

本文主要是介绍mybatis三种(查询,参数传递),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

MyBatis中三种查询方式

Mapper文件代码

<mapper namespace="com.bjsxt.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.bjsxt.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.bjsxt.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.bjsxt.mapper.FlowerMapper.selectOne4", map);
System.out.println(flo);

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



这篇关于mybatis三种(查询,参数传递)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程