目前行业内比较流行mybatis-plus框架,该框架封装了sql的基本操作,在实际项目过程中,节省了大量的开发时间,且框架本身属于轻量级,引入非常方便,故整理出来,方便大家参考学习!
maven依赖:
<!--mybatis-plus 3.3.2-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!--分页插件 5.2.0 配合使用-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
<!--lombok 实体类注解-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
实体类示例:
package xxx;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
/**
* 公司信息
* @author pansh
* @since 2021-11-2 09:31:053
*/
@Data
public class TpCompany implements Serializable {
private static final long serialVersionUID = 41700485622670746L;
/**
* 主键,自增
*/
@TableId(type = IdType.AUTO)
private Long id;
private String companyName;
private String companyAddress;
/**
* 1私企、2门店、3社区
*/
private int companyType;
private String phone;
private String country;
private String countryCode;
private Long createBy;
private Long updateBy;
@TableField(exist = false)
private int userType;
}
Mapper 示例:
package xxx;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
public interface CompanyMapper extends BaseMapper<TpCompany> {
List<TpCompany> selectCompanyListByUserId(Long userId);
}
Mapper.xml 示例:
<?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.xxx.xxx.xxx.user.mapper.CompanyMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.xxx.xxx.xxx.user.domain.TpCompany">
<id column="ID" property="id" />
<result column="company_name" property="companyName" />
<result column="company_address" property="companyAddress" />
<result column="company_type" property="companyType" />
<result column="phone" property="phone" />
<result column="country" property="country" />
<result column="country_code" property="countryCode" />
<result column="user_type" property="userType" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
ID, company_name, company_address, company_type, phone, country, country_code
</sql>
<!-- 获取用户公司列表信息 -->
<select id="selectCompanyListByUserId" resultMap="BaseResultMap">
select tc.ID, company_name, company_address, company_type, phone, country, country_code ,tuc.user_type from tp_company tc, tp_user_company tuc where tc.id = tuc.company_id and user_id = #{userId}
</select>
</mapper>
service接口示例:
package xxx;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* 公司业务类
* @author pansh
* @since 2021-11-2 10:46:19
*/
public interface ICompanyService extends IService<TpCompany> {
/**
* 获取用户公司列表信息
* @param userId
* @return
*/
List<TpCompany> selectCompanyListByUserId(Long userId);
}
service 实现类示例:
package xxx;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import sf.tools.StringUtils;
import javax.annotation.Resource;
import java.util.List;
@Service
public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, TpCompany> implements ICompanyService {
@Override
public List<TpCompany> selectCompanyListByUserId(Long userId) {
return baseMapper.selectCompanyListByUserId(userId);
}
}