动态sql
通过动态sql实现多条件查询,这里以查询为例,实现动态sql的书写。
创建members表
创建表并插入数据:
create table members (
member_id int (11),
member_nick varchar (60),
member_gender char (15),
member_age int (11),
member_city varchar (90)
);
insert into members (member_id, member_nick, member_gender, member_age, member_city) values('1','reading','W','99','wuhan');
insert into members (member_id, member_nick, member_gender, member_age, member_city) values('2','running','W','32','changsha');
insert into members (member_id, member_nick, member_gender, member_age, member_city) values('3','talking','W','26','changsha');
insert into members (member_id, member_nick, member_gender, member_age, member_city) values('4','song','W','22','beijing');
insert into members (member_id, member_nick, member_gender, member_age, member_city) values('5','running','F','28','beijing');
commit;
创建对应的members类
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Members implements Serializable {
private int memberId;
private String memberNick;
private String memberGender;
private int memberAge;
private String memberCity;
}
创建对应的dao类
public interface MembersDao {
public List<Members> queryMemberUsingWhere(HashMap<String, Object> parms);
public List<Members> queryMemberUsingTrim(HashMap<String, Object> parms);
public List<Members> queryMemberByCity(List<String> cities);
public List<Members> queryMemberByNick(String keyword);
public Members queryMemberById(int id);
public int updateMember(@Param("id") int id, @Param("age") int age);
}
创建xml文件
编写MembersDao的map文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kingyal.dao.MembersDao">
<!-- -->
<!-- <cache readOnly="true" size=""></cache>-->
<resultMap id="MemberMapper" type="Members">
<id column="member_id" property="memberId">