企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] # 简介 单个参数,mybatis不会做特殊处理. 多个参数: mybatis会做特殊处理 # 索引方式 用param1和param2 key: param1...paramN,或者参数的索引也可以 ~~~ <select id="findAll" resultType="user"> select * from user where username = #{param1} or address = #{param2} </select> ~~~ dao接口 ~~~ List<User> findAll(String username, String address); ~~~ 执行 (参数用索引顺序方式传递) ~~~ List<User> users = userDao.findAll("老王", "北京"); for (User user : users) { System.out.println(user); } ~~~ 由于是多参数那么就不能使用parameterType, 改用 `#{index}` 是第几个就用第几个的索引,索引从0开始 # map封装参数 明确指定封装参数时map的key `@Param("id")` 多个参数封装成一个map key: 使用`@Param`注解指定的值 value: 参数值 `#{指定的key}`取出对应的参数值 xml ~~~ <select id="findAll" resultType="user"> select * from user where username = #{username} or address = #{address} </select> ~~~ dao ~~~ List<User> findAll(@Param("username")String username, @Param("address")String address); ~~~ 执行 ~~~ List<User> users = userDao.findAll("老王", "北京"); for (User user : users) { System.out.println(user); } ~~~ # 参数是map dao ~~~ List<User> findAll(Map<String, Object> map); ~~~ xml ~~~ <select id="findAll" resultType="user"> select * from user where username = #{username} or address = #{address} </select> ~~~ 执行 ~~~ List<User> users = userDao.findAll(map); for (User user : users) { System.out.println(user); } ~~~ # List封装in ~~~ public List<XXXBean> getXXXBeanList(List<String> list); <select id="getXXXBeanList" resultType="XXBean">   select 字段... from XXX where id in   <foreach item="item" index="index" collection="list" open="(" separator="," close=")">     #{item}   </foreach> </select> foreach 最后的效果是select 字段... from XXX where id in ('1','2','3','4') ~~~