MVN--07
一、MyBatis 参数封装规则MyBatis 会根据接口方法的参数类型自动进行不同的封装处理核心由ParamNameResolver类实现。1. 单个参数的封装规则表格参数类型封装规则XML 中取值方式POJO 实体类直接使用无需额外处理#{属性名}属性名与占位符名称一致Map 集合直接使用无需额外处理#{键名}键名与占位符名称一致Collection 集合封装为 Map默认 key 为collection、arg0#{collection}/#{arg0}建议用Param自定义 keyList 集合封装为 Map默认 key 为collection、list、arg0#{collection}/#{list}/#{arg0}建议用Param自定义 keyArray 数组封装为 Map默认 key 为array、arg0#{array}/#{arg0}建议用Param自定义 key其他类型String/int 等直接使用无需封装#{任意名称}名称不影响取值2. 多个参数的封装规则默认封装MyBatis 会自动将多个参数封装为 Map默认 key 为arg0、arg1...按参数顺序param1、param2...按参数顺序MyBatis 3.4.2 支持Param 注解优化使用Param(自定义key)注解可替换默认的arg键名大幅提升代码可读性。java运行// 接口方法 User select(Param(username) String username, Param(password) String password); // XML 映射文件 select idselect resultTypeuser select * from tb_user where username #{username} and password #{password}; /select3. 核心建议无论单个集合 / 数组参数还是多个普通参数都建议统一使用Param注解自定义 key避免依赖默认键名提升代码可维护性和可读性。二、MyBatis 注解开发MyBatis 支持纯注解开发无需编写 XML 映射文件适合简单 CRUD 场景。1. 核心注解表格操作类型对应注解示例查询SelectSelect(select * from tb_user where id #{id})添加InsertInsert(insert into tb_user values(#{id},#{username},#{password}))修改UpdateUpdate(update tb_user set username#{username} where id#{id})删除DeleteDelete(delete from tb_user where id#{id})2. 完整示例java运行public interface UserMapper { // 根据ID查询用户 Select(select * from tb_user where id #{id}) public User selectById(int id); // 新增用户 Insert(insert into tb_user(username, password) values(#{username}, #{password})) public int add(User user); // 修改用户 Update(update tb_user set username#{username}, password#{password} where id#{id}) public int update(User user); // 删除用户 Delete(delete from tb_user where id#{id}) public int deleteById(int id); }3. 注解 vs XML 开发对比表格开发方式适用场景优缺点注解开发简单 CRUD、单表操作✅ 代码简洁、开发效率高❌ 复杂 SQL、动态 SQL 维护困难XML 开发复杂 SQL、动态 SQL、多表关联✅ 结构清晰、可维护性强❌ 开发流程稍繁琐最佳实践简单操作用注解复杂操作用 XML两种方式可自由切换无需统一。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2496778.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!