SQL映射文件通常是指在使用ORM(对象关系映射)框架时定义的XML或者注解配置文件,用于将数据库表和Java对象之间的映射关系描述清楚
MyBatis框架的条件查询可以使用以下几种方式:
-
使用<if>元素:在SQL语句中通过<if>元素根据条件动态拼接SQL语句,实现条件查询。
-
使用<where>元素:<where>元素可以自动去除SQL语句中不必要的WHERE子句,并根据条件动态拼接WHERE子句,简化条件查询的编写。
-
使用<choose>、<when>、<otherwise>元素:这些元素组合可以实现类似Java中的switch-case语句的功能,根据不同的条件拼接不同的SQL语句。
-
使用动态SQL标签:MyBatis提供了一系列动态SQL标签,如<if>、<choose>、<when>等,可以根据条件动态拼接SQL语句,实现条件查询。
-
使用<foreach>元素:当需要对一个集合进行遍历并在SQL中使用遍历结果时,可以使用<foreach>元素来实现条件查询。
这些方式都可以根据不同的条件动态生成SQL语句,实现灵活的条件查询功能。
实现多条件查询
1.将查询条件封装成java对象作为入参
/** * 查询用户列表 */ public List<SysUser> getUserListByPojo(SysUser sysUser);
2.将查询条件封装成Map对象作为入参
/** * 查询用户列表 */ public List<SysUser> getUserListByMap(Map<String,Object> userMap);
3.使用@Param注解实现多参数入参
/** * 查询用户列表 */ public List<SysUser> getUserListByParams(@Param("realName") String realName,@Param("roleId") int roleId);
MyBatis框架结果映射
MyBatis框架中的结果映射指的是将数据库查询结果映射到Java对象的过程。通过配置XML或注解,可以指定如何将查询结果的列映射到Java对象的属性
配置结果映射:在MyBatis的映射文件中,配置如何将数据库查询结果映射到Java对象的属性。可以通过XML中的<resultMap>
元素或者注解的方式进行配置。例如:
<resultMap id="userResultMap" type="User">
<id property="id" column="id" />
<result property="username" column="username" />
<result property="password" column="password" />
</resultMap>
MyBatis框架增删改操作
接口
/** * 添加角色 */ public int add(SysRole sysRole); /** * 根据角色id修改角色信息 */ public int update(SysRole sysRole); /** * 根据角色名称查询角色信息列表 */ public List<SysRole> getSysRoleList(String roleName); /** * 根据角色id删除角色信息 */ public int deleteSys(@Param("id")Integer id);
映射文件
<?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.bdqn.mapper.SysRoleMapper"> <!--添加--> <insert id="add" parameterType="com.bdqn.pojo.SysRole"> insert into t_sys_role(code,roleName,createdUserId,createdTime) values (#{code},#{roleName},#{createdUserId},#{createdTime}) </insert> <!--修改--> <update id="update" parameterType="sysRole"> update t_sys_role set code=#{code},roleName=#{roleName},updatedUserId=#{updatedUserId},updatedTime=#{updatedTime} where id=#{id} </update> <!--查询--> <select id="getSysRoleList" resultType="sysRole"> select * from t_sys_role where roleName like concat('%',#{roleName},'%') </select> <!--删除--> <delete id="deleteSys" parameterType="integer"> delete from t_sys_role where id=#{id} </delete> </mapper>