mybatis-plus 下建立 联合查询,用xml
在 resource mapper下建立 user.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="cn.taotao.dao.UserDao"> <resultMap id="MyUser" type="cn.taotao.domain.User"> <id column="id" jdbcType="INTEGER" property="id"></id> <result column="name" jdbcType="VARCHAR" property="name"></result> <result column="pid" jdbcType="INTEGER" property="pid"></result> <association property="pUser" javaType="cn.taotao.domain.User"> <id column="pid" property="id"></id> <result column="pname" jdbcType="VARCHAR" property="name"></result> </association> </resultMap> <select id="getOne" resultType="cn.taotao.domain.User"> select * from tbl_test where id = #{id} </select> <select id="getAll" resultType="cn.taotao.domain.User"> select * from tbl_test </select> <!-- @Select("select a.id,a.name,b.name as pname,a.pid as pid from tbl_test as a,tbl_test as b where a.id =${ew} and a.pid = b.id")--> <!-- @Results({--> <!-- @Result(id =true,property = "id",column = "id"),--> <!-- @Result(property = "name" ,column = "name"),--> <!-- @Result(javaType = User.class,property = "pUser" ,column = "pid",one=@One(select="cn.taotao.UserDao.getOne"))--> <!-- })--> <select id="findAll" resultMap="MyUser"> select a.id,a.name,b.name as pname,a.pid as pid from tbl_test as a,tbl_test as b where a.pid > ${ew} and a.pid = b.id </select> </mapper>
dao
public interface UserDao extends BaseMapper<User> { List<User> findAll(@Param("ew") Integer id); User getOne(@Param("id") Integer id); List<User> getAll(); }
yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test
username: root
password: xxxxx
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath*:/mapper/**/*.xml
返回结果