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]#{} 相当于占位符 ${} 相当于拼接
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)