1.传实体
当mapper配置文件中没有相对应的数据库字段,或是实体与数据库不同时,可以直接使用实体类进行传值,如
parameterType="java.com.entity"//对应实体类
<select id="queryByNameAndSex" parameterType="java.com.entity.Student" resultMap="student">
2.传多个参数
- 使用@Param注解(不需要些parameterType)
public List<Student> queryByNameAndSex(@Param("name")String name,@Param("age")String age);
<select id="queryByNameAndSex" resultMap="student">
select * from student where 1=1
<if test="null != name and '' != name">
and name like CONCAT('%','${name}','%' )
</if>
<if test="null != age and '' != age">
and sex = #{age}
</if>
</selcet>
- 直接使用下标
public List<Student> queryByNameAndSex(String name,String sex);
<select id="queryByNameAndSex" resultMap="student">
select * from student where 1=1
<if test="null != name and '' != name">
and name like CONCAT('%','${0}','%' )
</if>
<if test="null != age and '' != age">
and sex = #{1}
</if>
</selcet>
转载于:https://my.oschina.net/iovuMi/blog/1576739
分享到:
相关推荐
在Mybatis框架中,Mapper.xml文件是定义SQL映射的关键组件,它允许开发者编写SQL语句并执行数据库操作。然而,在XML中直接使用一些特殊字符,比如大于(>)、小于(<)、等于(=)、单引号(')和双引号(")等,...
#### 七、DAO层接口向XML传值 1. **非注解传参**: - 单个非String类型的参数可以直接通过对象的属性名取值。 - 多个参数时,需要使用`@Param`注解来明确参数名称。 2. **注解传参**: - 如果传入单个对象,...
MyBatis通过XML或注解的方式将SQL语句配置到Mapper接口中,使得SQL与代码分离,更加易于维护。 在这个项目中,我们关注的重点是MyBatis的自定义枚举类型转换器。在实际开发中,枚举类型常常被用于表示固定的一些...
开发者只需要提供Mapper接口和对应的XML配置文件,SpringBoot会自动完成扫描和实例化。 6. **Docker**: Docker是一种开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到...
4. 配置MyBatis的mybatis-config.xml和Mapper XML文件,定义数据源、SqlSessionFactory等。 5. 编写Service层和DAO层的接口与实现,实现业务逻辑和数据库操作。 6. 使用EasyUI创建前端页面,通过Ajax与后端...
- 映射XML文件:创建对应的Mapper XML文件,定义SQL的复杂逻辑,如动态SQL。 - 使用SqlSessionTemplate或MyBatis提供的Spring支持进行数据访问。 4. **增删改查操作** 在SpringBoot+MyBatis的环境中,执行CRUD...
- **src/main/resources**:存放配置文件,如Spring的bean配置、MyBatis的Mapper文件以及数据库连接配置等。 - **src/main/webapp**:存放静态资源,如HTML、CSS、JavaScript文件,以及SpringMVC的视图解析路径。 - ...
3. **Mybatis配置**:编写mybatis-config.xml配置文件,定义数据源、事务管理器和MapperScannerConfigurer扫描Mapper接口。 4. **实体类和Mapper接口**:创建与数据库表对应的Java实体类,编写Mapper接口,定义SQL...
"MyBatis直接执行SQL的工具SqlMapper" MyBatis是一个流行的持久层框架,它提供了一个灵活的方式来交互数据库。然而,在某些情况下,我们可能需要直接执行SQL语句来实现某些复杂的数据库操作。这时,MyBatis提供了一...
特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%*%)和半角模糊查询(%*或*%)
代码包含: EscapeUtil.java:特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%...
然后,在MyBatis的Mapper XML文件中,我们需要配置`<select>`元素,设置`statementType="CALLABLE"`以使用`CallableStatement`,并使用自定义的`TypeHandler`。例如: ```xml {call func_arr_update(#{ids, mode=...
对应的Mapper.xml文件中,我们可以使用#{0}、#{1}等占位符来接收参数,例如: ```xml select * from user_user_t where user_name = #{0, jdbcType=VARCHAR} and user_area=#{1, jdbcType=VARCHAR} ``` 其中,#{0...
逆向工程是指通过数据库结构自动生成对应的Mapper接口和XML配置文件,简化了数据库操作的代码编写。 6. **批量删除**: 批量删除操作通常涉及到多个数据记录的删除,可以通过SQL的IN操作符或者批量执行SQL语句来...
在Mapper接口中,我们需要创建一个与XML中的SQL语句相对应的方法。在这个例子中,我们需要一个接受字符串参数的方法: ```java List<User> queryUserByKey(String key); ``` 通过这种方式,当调用`...