今天寫多表關聯寫法:要使用到了mybatis的多表關聯查詢。spring
附表:營業執照表服務器
CREATE TABLE `vfc_lp_busi_license_info` (
`SCC` varchar(64) NOT NULL COMMENT '統一社會信用代碼',
`ENT_TYPE` varchar(10) NOT NULL COMMENT '企業類型',
`LEGAL_REPRESENTATIVE` varchar(10) NOT NULL COMMENT '發人表明',
`ID_TYPE` varchar(10) NOT NULL COMMENT ' 證件類型',
`ID_No` varchar(30) NOT NULL COMMENT '證件號碼',
`BUSINESS_TERM_BEGIN` datetime NOT NULL COMMENT '營業期限起始時間',
`BUSINESS_TERM_END` datetime NOT NULL COMMENT '營業期限結束時間',
`REG_ADDRess` varchar(60) NOT NULL COMMENT '註冊地址',
`REG_MONEY` varchar(10) NOT NULL COMMENT '註冊資本幣種',
`REGISTERFUNDS` decimal(16,2) NOT NULL COMMENT '註冊資本金額',
`REGISTER_OFFICE` varchar(60) NOT NULL COMMENT '註冊登記機關',
`BUSINESS_SCOPE` varchar(1024) NOT NULL COMMENT '經營範圍',
`lp_no` varchar(64) DEFAULT NULL COMMENT '法人編號',
`ent_no` varchar(64) DEFAULT NULL COMMENT '企業ID',
`create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '建立時間',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間',
`create_instance` varchar(8) DEFAULT NULL COMMENT '建立服務器',
`update_instance` varchar(8) DEFAULT NULL COMMENT '修改服務器',
`reg_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '註冊時間'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='營業執照信息表';
主表:法人基本信息表mybatis
CREATE TABLE `vfc_lp_base_info` (
`lp_no` varchar(64) NOT NULL COMMENT '法人編號',
`lp_name` varchar(64) NOT NULL COMMENT '法人名稱',
`lp_classify` varchar(10) NOT NULL COMMENT '法人基本分類',
`ENGLISH_NAME` varchar(30) DEFAULT NULL COMMENT '英文名稱',
`ENTERPRISE_SIZE` varchar(10) NOT NULL COMMENT '企業規模',
`LISTED_COMPANY_LOGO` varchar(6) NOT NULL COMMENT '上市公司標識',
`COUNTRY` varchar(30) NOT NULL COMMENT '所在國家',
`PROV` varchar(30) NOT NULL COMMENT '所在省',
`CITY` varchar(30) NOT NULL COMMENT '所在城市',
`INDUSTRY` varchar(64) DEFAULT NULL COMMENT '所屬行業',
`OPEN_MARKET_RATING` varchar(64) DEFAULT NULL COMMENT '公開市場評級',
`WEB_SITE` varchar(255) DEFAULT NULL COMMENT '公司網站',
`created_by` varchar(30) NOT NULL COMMENT '主辦人',
`ent_no` varchar(64) DEFAULT NULL COMMENT '所屬企業',
`BP_ID` varchar(64) DEFAULT NULL COMMENT '合做夥伴ID',
`beginVersion` int(30) NOT NULL COMMENT '起始版本號',
`endVersion` int(30) NOT NULL COMMENT '終止版本號',
`id_type` varchar(16) DEFAULT NULL COMMENT '證件類型',
`id_no` varchar(64) DEFAULT NULL COMMENT '證件號碼',
`lp_type` varchar(16) DEFAULT NULL COMMENT '法人類型',
`register_address` varchar(255) DEFAULT NULL COMMENT '註冊地址',
`reg_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '登記時間 審覈經過時間',
`create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '建立時間',
`updated_by` varchar(32) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間',
`coordinator` varchar(32) DEFAULT NULL COMMENT '協辦人',
`created_office` varchar(16) DEFAULT NULL COMMENT '建立機構',
`valid_flag` varchar(3) DEFAULT NULL COMMENT '有效標識 0-失效,1-有效,僅實體數據必須',
`create_instance` varchar(8) DEFAULT NULL COMMENT '建立服務器',
`update_instance` varchar(8) DEFAULT NULL COMMENT '修改服務器',
PRIMARY KEY (`lp_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='法人基本信息';
主表和附表關聯關係:是根據主表的lp_No法人編號 跟附表中相互關聯一對一的關係app
既然要實現多表關聯:沒有在那個主表的mapper和mapper.xml裏面操做而是重新複製了一份同樣的東西。就是沒有使用mybatis自動生成的東西網站
一樣mapper.xml也是重新拉出來一個新的。this
<?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.alibaba.test.dao.impl.LpBaseInfoMapper"> <resultMap id="BaseResultMap" type="com.alibaba.test.entity.impl.LpBaseInfo" extends="com.alibaba.test.dao.VfcLpBaseInfoMapper.BaseResultMap"> <collection property="vfcLpBusiLicenseInfo" column="lp_No" ofType="com.alibaba.test.entity.VfcLpBusiLicenseInfo" select="queryList"> </collection> </resultMap> <select id="queryList" resultMap="com.alibaba.test.dao.VfcLpBusiLicenseInfoMapper.BaseResultMap" parameterType="string"> select * from vfc_lp_busi_license_info where lp_No=#{lp_No} </select> <select id="getList" parameterType="com.alibaba.test.entity.co.LpListDTO" resultMap="BaseResultMap"> select * from vfc_lp_base_info where 1=1 <if test="lpListDTO.idType!=null || lpListDTO.idType.size()=0"> id_type in <foreach collection="lpListDTO.idType" item="idType" index="index" open="(" close=")" separator=","> #{idType} </foreach> </if> <if test="lpListDTO.lpName!=null "> and lp_Name=#{lpListDTO.lpName} </if> <if test="lpListDTO.idNo!=null "> and id_No=#{lpListDTO.idNo} </if> </select> </mapper>
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})
public class Demo {
@Autowired
private VfcLpBpInfoMapper bpInfoMapper;
@Autowired
private UserDao userDao;
@Autowired
private LpBaseInfoMapper lpBaseInfoMapper;
@Test
public void testCase(){
System.out.println("=====================");
// List list = userDao.selectId("11");
List<VfcLpBpInfo> vfcLpBpInfos = bpInfoMapper.queryList();
LpListDTO lpListDTO=new LpListDTO();
// lpListDTO.setLpName("");
// lpListDTO.setIdNo("");
List<String>list=new ArrayList<>();
// list.add("01");
// list.add("02");
lpListDTO.setIdType(list);
List<LpBaseInfo> list1 = lpBaseInfoMapper.getList(lpListDTO);
// List<VfcLpBpInfo> list1 = bpInfoMapper.getList(lpListDTO);
System.out.println("===========");
}
LpBaseInfospa
public class LpBaseInfo extends VfcLpBaseInfo implements Serializable {
private VfcLpBusiLicenseInfo vfcLpBusiLicenseInfo; //附表對象
想關聯多少個表這裏就寫多少個對象就能夠了
public VfcLpBusiLicenseInfo getVfcLpBusiLicenseInfo() {
return vfcLpBusiLicenseInfo;
}
public void setVfcLpBusiLicenseInfo(VfcLpBusiLicenseInfo vfcLpBusiLicenseInfo) {
this.vfcLpBusiLicenseInfo = vfcLpBusiLicenseInfo;
}
}