案例1:两个以上sql 参数
数据库:
drop database if exists mybatisdemo;
create database mybatisdemo;
use mybatisdemo;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL COMMENT '用户名称',
`birthday` date DEFAULT NULL COMMENT '生日',
`sex` char(1) DEFAULT NULL COMMENT '性别',
`address` varchar(256) DEFAULT NULL COMMENT '地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES ('1', '张三', '2018-07-10', '1', '北京');
INSERT INTO `user` VALUES ('2', '李四', '2018-07-10', '0', '上海');
INSERT INTO `user` VALUES ('3', '王五', '2018-07-10', '1', '广州');
INSERT INTO `user` VALUES ('4', '王六', '2018-07-10', '1', '深圳');
INSERT INTO `user` VALUES ('5', '王八', '2018-07-10', '1', '上海');
create table employee(
id varchar(255) primary key,
name varchar(255)
)
场景: 查在上海的女人
select * from user whrere sex = ? and address = ?
1. 通过Map 的方式
- Mapper 接口方法
List<User> selectUserByAddrAndSexA(Map<String,Object> map);
- Mapper 映射文件
<select id="selectUserByAddrAndSexA" parameterType="map" resultMap="userMap">
select * from user where sex = #{sex} and address = #{address}
</select>
- 测试代码
Map<String,Object> map = new HashMap<>();
map.put("sex",0);
map.put("address","上海");
List<User> userList = userMapper.selectUserByAddrAndSexA(map);
2. 通过java Bean 的方式
- Mapper 接口方法
List<User> selectUserByAddrAndSexB(User user);
- Mapper 映射文件
<select id="selectUserBy