苏州资讯网站建设移动商城 网站建设方法方式
news/
2025/10/3 21:13:39/
文章来源:
苏州资讯网站建设,移动商城 网站建设方法方式,手机网站底部电话,个人网站可以做商业用途吗Mybatis 多条件查询常见且关键#xff0c;本文探讨两种方法——Map 传参和 Java Bean 对象传参#xff0c;展示用法及区别#xff0c;总结应用场景和优缺点。 1. Map传参方式
原理#xff1a;Mybatis允许我们通过一个Map对象来传递动态SQL中的参数。Map的键对应于SQL语句中…Mybatis 多条件查询常见且关键本文探讨两种方法——Map 传参和 Java Bean 对象传参展示用法及区别总结应用场景和优缺点。 1. Map传参方式
原理Mybatis允许我们通过一个Map对象来传递动态SQL中的参数。Map的键对应于SQL语句中占位符的名称值则是实际的参数值。
代码示例
Mybatis全局配置文件示例片段。
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd
configuration!-- 数据源配置 --environments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/mydatabase/property nameusername valueroot/property namepassword valuepassword//dataSource/environment/environments!-- 映射器配置可以自动扫描包中的Mapper接口 --mapperspackage namecom.example.dao.mapper/!-- 或者单独指定Mapper XML文件 --!-- mapper resourcecom/example/dao/mapper/UserMapper.xml/ --/mappers
/configuration根据 Map 键值对生成 SQL 条件实现多条件动态查询。
// DAO层方法定义
public ListUser findUsers(MapString, Object params);// Service层调用
MapString, Object params new HashMap();
params.put(name, John);
params.put(age, 25);
ListUser users userDao.findUsers(params);// Mapper.xml配置
select idfindUsers resultTypecom.example.UserSELECT * FROM user whereif testname ! nullname #{name}/ifif testage ! nullAND age #{age}/if/where
/select2. 对象传参方式
原理另一种方式是直接使用Java Bean对象作为参数传递给Mapper接口方法。Mybatis会自动将对象的属性名映射为SQL中的参数名。
代码示例
创建 UserQueryParams 类封装查询条件传递给 Mapper 方法Mybatis 自动处理对象属性到 SQL 参数映射。
// 定义一个用于传递查询条件的Java Bean
public class UserQueryParams {private String name;private Integer age;// ... getters and setters
}// DAO层方法定义
public ListUser findUsers(UserQueryParams queryParams);// Service层调用
UserQueryParams queryParams new UserQueryParams();
queryParams.setName(John);
queryParams.setAge(25);
ListUser users userDao.findUsers(queryParams);// Mapper.xml配置
select idfindUsers resultTypecom.example.UserSELECT * FROM user whereif testqueryParams.name ! nullname #{queryParams.name}/ifif testqueryParams.age ! nullAND age #{queryParams.age}/if/where
/select3. 区别总结
Map 传参灵活无需定义 Java Bean适用于临时或多变查询条件。
对象传参结构清晰可读性强适用于固定、复杂查询条件组合借助 IDE 自动补全提高开发效率便于维护扩展适用于有预定义模型的业务场景如用户搜索界面多种筛选条件对应 Java Bean 属性。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926322.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!