zoukankan      html  css  js  c++  java
  • Mybatis 映射关系

    Mybatis的Mapper.xml中定义了对数据库的增删改查等sql操作语句。

    这些语句中,既要对应数据库中各个表的字段,又要对应Java类中的属性,之前常常搞不清楚,刚刚在写项目的过程中,突然茅塞顿开。

    结合实例:

    UserTrackModel.java:

    @Alias("userTrackModel")
    public class UserTrackModel extends BaseModel {
        public static final String COND_USER_ID = "userId";
        
        private int userId;
        private Date dateStart;
        private Date dateEnd;
        private CompanyModel company;
        private String position;
        private String comment;
        
        ......(getset)
    }    

    UserTrackMapper.java:

    @Mapper
    public interface UserTrackMapper {
        List<UserTrackModel> queryList(UserTrackModel userTrackModel);     
    }

    UserMapper.xml

    <mapper namespace="com.hsys.mappers.UserTrackMapper">
        <resultMap id="companyResultMap" type="companyModel" >
            <id column="c_id" property="id"/>
            <result column="c_name" property="name"/>
        </resultMap>
        <resultMap id="userTrackResultMap" type="userTrackModel" >
            <id column="u_id" property="id"/>
            <result column="u_user_id" property="userId"/>
            <result column="u_date_start" property="dateStart"/>
            <result column="u_date_end" property="dateEnd"/>
            <result column="u_comment" property="comment"/>
            <result column="u_position" property="position"/>        
            <association property="company" resultMap="companyResultMap"/>
        </resultMap>
        
        <select id="queryList" resultMap="userTrackResultMap">
            select u.c_id as u_id,
                u.c_date_start as u_date_start,
                u.c_date_end as u_date_end,
                u.c_comment as u_comment,
                u.c_position as u_position,
                c.c_id as c_id,
                c.c_name as c_name
            from user_track_tbl as u
            left join company_tbl as c on u.c_company_id = c.c_id
            <where>
                <if test="cond.userId != null"></if>
                    u.c_user_id = #{userId}
            </where>
        </select>

    UserTrackService.java

    @Service
    public class UserTrackService {
        @Autowired
        private UserTrackMapper userTrackMapper;
        
        public List<UserTrackModel> queryList(UserTrackModel userTrackModel){
            return userTrackMapper.queryList(userTrackModel);
        }
        
        public List<UserTrackModel> queryByUid(int userId){
            UserTrackModel userTrack = new UserTrackModel();
            userTrack.setUserId(userId);
            userTrack.setCond(UserTrackModel.COND_USER_ID, userId);
            
            List<UserTrackModel> userTracks = queryList(userTrack);
            return userTracks;
        }
    }

    UserTrackBusiness.java

    @Component
    public class UserTrackBusiness {
        @Autowired
        private UserTrackService userTrackService;
        
        public List<UserTrackModel> queryList(UserTrackModel userTrackModel){
            return userTrackService.queryList(userTrackModel);
        }
            
    }

  • 相关阅读:
    网络爬虫技术总结
    MongoDB(7):集群部署实践,包含复制集,分片
    MongoDB(6):简单配置,环境变量,关闭服务
    Mongod(5):启动命令mongod参数说明
    MongoDB(4):多种方式关闭服务命令
    Linux下的Source命令及脚本的执行方式解析
    linux第一天
    echarts 各种细节问题
    MongoDB(3):小的细节问题
    获取用户Ip地址通用方法常见安全隐患(HTTP_X_FORWARDED_FOR)
  • 原文地址:https://www.cnblogs.com/jszfy/p/11174739.html
Copyright © 2011-2022 走看看