diff --git a/README.md b/README.md index c34e355..da4b288 100644 --- a/README.md +++ b/README.md @@ -24,26 +24,80 @@ #### select(UserEntity::getId) 查询指定的字段,支持可变参数 查询user表中的head_img,name和user_address表中的address,tel -![image](https://gitee.com/best_handsome/mybatis-plus-join/raw/master/doc/select.png) -对应sql - -![image](https://gitee.com/best_handsome/mybatis-plus-join/raw/master/doc/selectSql.png) + +```java +class test { + void testJoin() { + List list = userMapper.selectJoinList(new MyLambdaQueryWrapper() + .select(UserEntity::getHeadImg, UserEntity::getHeadImg) + .leftJoin(UserEntity::getId, UserAddressEntity::getUserId, + right -> right.select(UserAddressEntity::getAddress, UserAddressEntity::getTel)) + , UserDTO.class); + } +} +``` + +对应sql + +```sql +SELECT t0.head_img, t0.head_img, t1.address, t1.tel +FROM user t0 + LEFT JOIN user_address t1 ON t0.id = t1.user_id +``` #### selectAll(UserEntity.class) 查询UserEntity全部字段 查询user全部字段和user_address表中的address,tel -![image](https://gitee.com/best_handsome/mybatis-plus-join/raw/master/doc/selectAll.png) -对应sql - -![image](https://gitee.com/best_handsome/mybatis-plus-join/raw/master/doc/selectAllSql.png) + +```java +class test { + @Resource + private UserMapper userMapper; + + void testJoin() { + List list = userMapper.selectJoinList(new MyLambdaQueryWrapper() + .selectAll(UserEntity.class) + .leftJoin(UserEntity::getId, UserAddressEntity::getUserId, + right -> right.select(UserAddressEntity::getAddress, UserAddressEntity::getTel)) + , UserDTO.class); + } +} +``` + +对应sql + +```sql +SELECT t0.name, t0.sex, t0.head_img, t0.id, t1.address, t1.tel +FROM user t0 + LEFT JOIN user_address t1 ON t0.id = t1.user_id +``` #### as(UserEntity::getHeadImg,UserDTO::getUserHeadImg) 查询字段head_img as userHeadImg -![image](https://gitee.com/best_handsome/mybatis-plus-join/raw/master/doc/selectAs.png) -对应sql - -![image](https://gitee.com/best_handsome/mybatis-plus-join/raw/master/doc/selectAsSql.png) + +```java +class test { + @Resource + private UserMapper userMapper; + + void testJoin() { + List list = userMapper.selectJoinList(new MyLambdaQueryWrapper() + .as(UserEntity::getHeadImg, UserDTO::getUserHeadImg) + .leftJoin(UserEntity::getId, UserAddressEntity::getUserId, + right -> right.select(UserAddressEntity::getAddress, UserAddressEntity::getTel)) + , UserDTO.class); + } +} +``` + +对应sql + +```sql +SELECT t0.head_img AS userHeadImg, t1.address, t1.tel +FROM user t0 + LEFT JOIN user_address t1 ON t0.id = t1.user_id +``` #### 左连接 leftJoin(UserEntity::getId,UserAddressEntity::getUserId,right -> right) @@ -53,10 +107,32 @@ user left join user_address on user.id = User_address.user_id #### 条件查询eq() -![image](https://gitee.com/best_handsome/mybatis-plus-join/raw/master/doc/selectEq.png) -对应sql - -![image](https://gitee.com/best_handsome/mybatis-plus-join/raw/master/doc/selectEqSql.png) +```java +class test { + @Resource + private UserMapper userMapper; + + void testJoin() { + List list = userMapper.selectJoinList(new MyLambdaQueryWrapper() + .selectAll(UserEntity.class) + .leftJoin(UserEntity::getId, UserAddressEntity::getUserId, + right -> right.select(UserAddressEntity::getAddress, UserAddressEntity::getTel)) + .eq(true, UserEntity::getId, 1) + .like(UserAddressEntity::getTel, "1") + .eq(UserEntity::getId, UserAddressEntity::getUserId) + , UserDTO.class); + } +} +``` + +对应sql + +```sql +SELECT t0.name, t0.sex, t0.head_img, t0.id, t1.address, t1.tel +FROM user t0 + LEFT JOIN user_address t1 ON t0.id = t1.user_id +WHERE (t0.id = ? AND t1.tel LIKE ? AND t0.id = t1.user_id) +``` #### [参考测试类](https://gitee.com/best_handsome/mybatis-plus-join/blob/master/src/test/java/com/example/mp/MpJoinTest.java) diff --git a/doc/select.png b/doc/select.png deleted file mode 100644 index 5d18105..0000000 Binary files a/doc/select.png and /dev/null differ diff --git a/doc/selectAll.png b/doc/selectAll.png deleted file mode 100644 index 1cdc4de..0000000 Binary files a/doc/selectAll.png and /dev/null differ diff --git a/doc/selectAllSql.png b/doc/selectAllSql.png deleted file mode 100644 index e14394a..0000000 Binary files a/doc/selectAllSql.png and /dev/null differ diff --git a/doc/selectAs.png b/doc/selectAs.png deleted file mode 100644 index fa1f801..0000000 Binary files a/doc/selectAs.png and /dev/null differ diff --git a/doc/selectAsSql.png b/doc/selectAsSql.png deleted file mode 100644 index 3b0ed21..0000000 Binary files a/doc/selectAsSql.png and /dev/null differ diff --git a/doc/selectEq.png b/doc/selectEq.png deleted file mode 100644 index cab3e08..0000000 Binary files a/doc/selectEq.png and /dev/null differ diff --git a/doc/selectEqSql.png b/doc/selectEqSql.png deleted file mode 100644 index 5a809f6..0000000 Binary files a/doc/selectEqSql.png and /dev/null differ diff --git a/doc/selectSql.png b/doc/selectSql.png deleted file mode 100644 index f53f48c..0000000 Binary files a/doc/selectSql.png and /dev/null differ diff --git a/src/test/java/com/example/mp/MpJoinTest.java b/src/test/java/com/example/mp/MpJoinTest.java index 1207fa7..fc57826 100644 --- a/src/test/java/com/example/mp/MpJoinTest.java +++ b/src/test/java/com/example/mp/MpJoinTest.java @@ -113,14 +113,44 @@ class MpJoinTest { @Test - void test4() { - userMapper.selectJoinList(new MyLambdaQueryWrapper() + void select() { + List list = userMapper.selectJoinList(new MyLambdaQueryWrapper() + .select(UserEntity::getHeadImg, UserEntity::getHeadImg) + .leftJoin(UserEntity::getId, UserAddressEntity::getUserId, + right -> right.select(UserAddressEntity::getAddress, UserAddressEntity::getTel)) + , UserDTO.class); + } + + @Test + void selectAll() { + List list = userMapper.selectJoinList(new MyLambdaQueryWrapper() + .selectAll(UserEntity.class) + .leftJoin(UserEntity::getId, UserAddressEntity::getUserId, + right -> right.select(UserAddressEntity::getAddress, UserAddressEntity::getTel)) + , UserDTO.class); + } + + @Test + void selectAs() { + List list = userMapper.selectJoinList(new MyLambdaQueryWrapper() .as(UserEntity::getHeadImg, UserDTO::getUserHeadImg) .leftJoin(UserEntity::getId, UserAddressEntity::getUserId, right -> right.select(UserAddressEntity::getAddress, UserAddressEntity::getTel)) , UserDTO.class); } + @Test + void selectEq() { + List list = userMapper.selectJoinList(new MyLambdaQueryWrapper() + .selectAll(UserEntity.class) + .leftJoin(UserEntity::getId, UserAddressEntity::getUserId, + right -> right.select(UserAddressEntity::getAddress, UserAddressEntity::getTel)) + .eq(true, UserEntity::getId, 1) + .like(UserAddressEntity::getTel, "1") + .eq(UserEntity::getId, UserAddressEntity::getUserId) + , UserDTO.class); + } + private void log(String format, String... args) { System.err.println(String.format(format, args));