美文网首页
springboot创建mapper

springboot创建mapper

作者: Yluozi | 来源:发表于2020-07-15 13:34 被阅读0次

例子1

@Results(id="groupWithUsers",
         value = { 
            @Result(property = "groupId", column = "group_id", id = true),
            @Result(property = "name", column = "name"), 
            @Result(property = "accountId", column = "account_id"),
            @Result(property = "deleteFlag", column = "delete_Flag"),
            @Result(property = "parentId", column = "parent_Id"), 
            @Result(property = "userList", javaType=List.class, many =@Many(select="selectUsersByGroupId"), column = "group_id")})
//查询
@Select({"select * from group where account_id=#{accountId} and delete_flag=0"})
List<Group> selectGroupWithUsers(@Param("accountId") String accountId);
 
 
@Select({"select u.* from user u",
        "inner join user_group ug on u.user_id = ug.user_id",
        "where ug.group_id=#{groupId} and u.delete_flag=0"
        })
List<User> selectUsersByGroupId(@Param("groupId") String groupId);

实体


@Data
public class Group {
 
    private String groupId;
 
    private String name;
 
    private String accountId;
 
    private String parentId;
 
    private String type;
 
    private List<User> userList;
 
}

例子2

package com.cnki.urtp.dao.config;

import com.cnki.urtp.domain.log.UrtpRunTimeLog;
import org.apache.ibatis.annotations.*;

/**
 * 平台运行中的异常日志
 * 映射 program_log表
 * @author 
 *
 */
@Mapper
public interface UrtpProgramLogDao {

    @Results({
            @Result(property = "logType", column = "log_type"),
            @Result(property = "simpleReason", column = "simple_reason"),
            @Result(property = "simpleReason", column = "simple_reason"),
    })
    @Insert("insert into urtp_program_log (log_type,simple_reason,ext_msg,exception,time) values(#{logType},#{simpleReason},#{extMsg},#{exception},now())")
    public void saveException(UrtpRunTimeLog 
    
}

实体

package com.cnki.urtp.domain.log;

import lombok.Data;

import java.io.Serializable;

/**
 *
 * @author 
 * @since  2020/06/06
 * 平台运行中日志实体类
 * 映射 kweb_product数据库中 urtp_program_log表
 *
 * 日志文件只记录错误日志
 * 正常运行日志 通过logback生成
 */
@Data
public class UrtpRunTimeLog implements Serializable {
    /**
     * 日志类型 search|login|download
     */
    private String logType;
    /**
     * 初步判断报错原因
     */
    private String simpleReason;
    /**
     * 额外信息
     */
    private String extMsg;
    /**
     * 详细栈轨迹信息
     */
    private String exception;
    /**
     * 报错时间
     */
    private String time;
}

说明

@Results中只有两个属性,id和value,id作为当前@Results注解的唯一标识很好理解;value值为@Result数组,
@Result中常用的属性是column和property,用于配置数据库中的列名和类中的属性名之间的映射关系。另外one和many用于关联查询。比如上面列子中提到的Group类中包含属性List<User> userList,这时集合类型数据,与Group是一对多的关系,需要用many配置,如果Group中需要对象类型数据User user,那么就需要使用one进行配置。
@Many中常用的属性只有selet,用于指定关联查询的方法
但是存在many属性的@Result注解的使用就有些变化
@ResultMap中只有一个属性value,用于指定要引用的@Results,value值为@Results的id值
友情链接:https://blog.csdn.net/zhoushimiao1990/article/details/99944357

相关文章

网友评论

      本文标题:springboot创建mapper

      本文链接:https://www.haomeiwen.com/subject/qgvdhktx.html