mysql多表联查之多对⼀的处理多对⼀:左外联表查询:
<!-- //查询所有员⼯信息
java生成一定范围的随机数
List<Emp> getAllEmp();-->
<!--⾃定义emp类型的映射关系-->
<resultMap id="empMap"type="Emp">
<!--id⽤于定义主键的映射-->
<id column="eid"property="eid"></id>
<!--result定义属性的映射-->
中国最好的php培训班<result column="ename"property="ename"></result>
<result column="age"property="age"></result>
<result column="sex"property="sex"></result>
<result column="did"property="dept.did"></result>
<result column="dname"property="dept.dname"></result>
</resultMap>
<select id="getAllEmp"resultMap="empMap"resultType="Emp">
SELECT *  FROM emp e  LEFT JOIN dept d ON e.did=d.did;
</select>
```java
@Test
public  void  test() throws IOException {
//获取输⼊流
InputStream is = ResourceAsStream("l");
/
/获取会话对象⼯⼚
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//通过⼯⼚获取会话对象,参数为true:⾃动提交事务
常量定义初始化SqlSession sqlSession = sqlSessionFactory.openSession(true);
//通过会话对象获取mapper
EmpMapper mapper = Mapper(EmpMapper.class);
List<Emp> allEmp = AllEmp();
对象不理你怎么办
System.out.println(allEmp);
}
左外联查:以左边数据为优先,查询出全部数据
**<resultMap>:⾃定义映射,处理复杂的表关系
<id column="eid"property="eid"></id>
<id>:设置主键的映射关系,column设置字段名,property:设置书⾹名
<result>:设置⾮主键的映射关系,column设置字段名,property设置属性名
<association>也可以实现bean类中其他类属性的信息查询及赋值⽤来处理⼀对⼀和多对⼀的关系<collection>处理⼀对多和多对多的映射关系**
mysql语句多表查询
多对⼀:分步查询
⼀对多联表查询
<resultMap id="DeptMap"type="Dept">
<id column="did"property="did"></id>
<result column="dname"property="dname"></result>
dateadd函数什么意思<!--collection标签:处理⼀对多和多对多的关系
oftype:指集合中的类型, 不需要指定javatype
-->
<collection property="emps"ofType="Emp">
<result column="eid"property="eid"></result>
<result column="ename"property="ename"></result>
<result column="age"property="age"></result>
<result column="sex"property="sex"></result>
</collection>
</resultMap>
<select id="getDept"resultMap="DeptMap">
select * from dept d left  join emp e on  d.did=e.did where d.did=#{did}
</select>
⼀对多的分步查询
<select id="getOnlyEmpByDid" resultType="Emp">
select  *  from  emp  where did=#{did}
</select>
<select id="getOnlyDeptByDid" resultMap="deptMapStep">
select * from dept where did=#{did};
</select>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。