xml开发mybatis

发布于:2024-04-20 ⋅ 阅读:(25) ⋅ 点赞:(0)

1、XML映射文件定义规范:

        XML文件的名称与Mapper接口名一致,并且放置在相同包下(同包同名)。

        XML文件的namespace属性为Mapper接口全限定名一致。

        XML文件中sql语句的id与Mapper接口中的方法名一致。

动态sql:

       <if>:用于判断调价是否成立。使用test属性进行条件判断,如果条件为true,则拼接SQL。

        <where>:where元素只会在子元素有内容的情况下才插入where子句。而且会自动去除子句的开头的AND或OR。

        <set>:动态的在行首插入set关键字,并会删掉额外的逗号。(用在update语句中)

        <foreach>:属性:collection:遍历的集合。

                                        item:遍历出来的元素。

                                        sparator:分隔符。

                                        open:遍历开始前拼接的sql片段。

                                        close:遍历结束后拼接的sql片段。

sql片段:

        <sql>:定义可重用的sql片段。

        <include>:通过属性refid ,指定包含的sql片段。

mybatis-config.xml文件配置

<configuration>
    <settings>
<!--        输出mybatis的日志-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <!--        开启数据库下划线与java驼峰的自动映射-->
        <setting name="mapUnderscoreToCamelCase" value="true"></setting>
    </settings>
    <typeAliases>
<!--    配置别名-->
        <typeAlias type="com.example.demo.pojo.Emp" alias="Emp"/>
        <package name="com.example.demo.pojo"/>
    </typeAliases>
</configuration>

xml映射文件:

<mapper namespace="com.example.demo.mapper.EmpMapper">
<!--    列名和属性名的映射-->
    <resultMap id="EmpResultMap" type="Emp">
        <id property="id" column="id" />
        <result property="username" column="username"/>
        <result property="password" column="password"/>
        <result property="name" column="name"/>
        <result property="image" column="image"/>
        <result property="job" column="job"/>
        <result property="entrydate" column="entrydate"/>
        <result property="deptId" column="dept_id"/>
        <result property="createTime" column="create_time"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <sql id="insert">
        insert into emp(username,name,gender,image,job,entrydate,dept_id,create_time,update_time) values
    </sql>
    <update id="update" parameterType="Emp">
        update emp
        <set>
            <if test="username !=null">
                username=#{username},
            </if>
            <if test="name!=null">
                name=#{name},
            </if>
            <if test="image!=null">
                image=#{image},
            </if>
            <if test="gender!=null">
                gender=#{gender}
            </if>
        </set>
        where id=#{id}
    </update>
    <select id="selectAll" resultMap="EmpResultMap">
        select * from emp
    </select>
<!--    查找-->
    <select id="selectByCondition" resultMap="EmpResultMap">
        select username,name,gender,image,job from emp
        <where>
            <if test="name!=null">
                name like concat('%',#{name},'%')
            </if>
            <if test="gender!=null">
                and gender=#{gender}
            </if>
            <if test="startTime!=null and endTime!=null">
                and entrydate between #{startTime} and #{endTime}
            </if>
        </where>
        order by entrydate desc
    </select>
<!--    批量删除-->
    <delete id="deleteById">
        delete from emp where id in
        <foreach collection="list" item="id" separator="," open="("  close=")">
            #{id}
        </foreach>
    </delete>
<!--    批量插入-->
    <insert id="insertValues" parameterType="list">
        <include refid="insert"></include>
        <foreach item="emp" collection="list" separator=",">
            (#{emp.username},#{emp.name},#{emp.gender},#{emp.image},#{emp.job}
            ,#{emp.entrydate},#{emp.deptId},now(),now())
        </foreach>
    </insert>

</mapper>
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Emp {
    private Integer id;
    private String username;
    private String password;
    private String name;
    private Short gender;
    private String image;
    private Short job;
    private LocalDate entrydate;
    private Integer deptId;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
}

mapper接口文件:

@Mapper
public interface EmpMapper {
    public int update(Emp emp);
    public List<Emp> selectAll();
    public List<Emp> selectByCondition(String name, Short gender, Date startTime,Date endTime);
    public void deleteById(List<Integer> ids);
    public void insertValues(List<Emp> emps);
}


网站公告

今日签到

点亮在社区的每一天
去签到