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三种(查询,参数传递)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Java语音识别项目资料:新手入门教程
- 2024-11-26JAVA语音识别项目资料:新手入门教程
- 2024-11-26Java语音识别项目资料:入门与实践指南
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料:新手入门教程
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25Java对接阿里云智能语音服务资料详解