第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

MyBatis-Plus入門

難度高級
時長 4小時 0分
學(xué)習(xí)人數(shù)
綜合評分9.57
102人評價 查看評價
9.7 內(nèi)容實用
9.4 簡潔易懂
9.6 邏輯清晰
  • 刪除操作

    public class MyBatisPlusDeleteTest{


    @Autowired

    private UserMapper userMapper;


    @Test

    public void deleteById(){

    Integer rows = userMapper.deleteById(10001);

    System.out.println("刪除條數(shù):" + rows);

    }




    @Test

    public void deleteByMap(){

    Map<String, Object> columnMap = new HashMap<>();

    columnMap.put("name", "張無忌");

    columnMap.put("age", 31);


    ? ? ? ? //DELETE FROM user WHERE name = '張無忌' AND age = 31

    Integer rows = userMapper.deleteByMap(columnMap);

    System.out.println("刪除條數(shù):" + rows);

    }



    ? ? //帶條件構(gòu)造器的刪除方法

    @Test

    public void deleteByWrapper(){

    LambdaQueryWrapper<User> wrapper = Wrappers.<User>lambdaQuery();

    wrapper.eq(User::getAge, 27).or().gt(User::getAge, 41);



    ? ? ? ? //刪除多條

    ? ? ? ? //DELETE FROM user WHERE age = 27 or age > 41

    Integer rows = userMapper.delete(deleteByWrapper);

    System.out.println("刪除條數(shù):" + rows);

    }



    }

    查看全部
    0 采集 收起 來源:刪除方法

    2022-09-04

  • MyBatisPlus 的更新方法



    public class MyBatisPlusUpdateTest{


    @Autowired

    private UserMapper userMapper;


    ? ? //根據(jù)updateById方法進行更新

    ? ? @Test

    ? ? public void updateByIds(){

    ? ? User user = new User();

    ? ? user.setId(10001);

    ? ? ? ? user.setAge(23);

    ? ? ? ? user.setName("龍在天涯");

    ? ? ? ? user.setEmail("37635636756@163.com");


    ? ? ? ? Integer rows = userMapper.updateById(user);

    ? ? ? ? System.out.println("影響記錄數(shù):" + rows);

    ? ? }



    ? ? @Test

    ? ? public void updateByWrapper(){

    ? ? UpdateWrapper<User> updateWrapper = new UpdateWrapper<User>();

    ? ? updateWrapper.eq("name", "張無忌").eq("age", 28);? ?//where 表達式


    ? ? ? ??

    ? ? ? ? // UPDATE user SET age = 25 , email = 'uyddhjdhgg@163.com' WHERE name = '張無忌' and age = 28

    ? ? User user = new User();

    ? ? user.setEmail("uyddhjdhgg@163.com");

    ? ? user.setAge(25);


    ? ? Integer rows = userMapper.update(user, updateWrapper);


    ? ? ? ? System.out.println("影響記錄數(shù):" + rows);

    ? ? }



    ? ? @Test

    ? ? public void updateByWrapper1(){

    ? ? ? ? User whereUser = new User();

    ? ? whereUser.setId(10002);


    ? ? UpdateWrapper<User> updateWrapper = new UpdateWrapper<User>(whereUser);? //將實體傳遞給條件構(gòu)造器

    ? ? updateWrapper.eq("name", "張無忌").eq("age", 28);? ?//where 表達式


    ? ? ? ??

    ? ? ? ? // UPDATE user SET age = 25 , email = 'uyddhjdhgg@163.com' WHERE name = '張無忌' and age = 28

    ? ? User user = new User();

    ? ? user.setEmail("uyddhjdhgg@163.com");

    ? ? user.setAge(25);


    ? ? Integer rows = userMapper.update(user, updateWrapper);


    ? ? ? ? System.out.println("影響記錄數(shù):" + rows);

    ? ? }




    ? ? ?@Test

    ? ? public void updateByWrapper2(){

    ? ? UpdateWrapper<User> updateWrapper = new UpdateWrapper<User>();

    ? ? updateWrapper.eq("name", "張無忌").eq("age", 28).set("age", 30);? ?//UPDATE user SET age = 30 WHERE name = '張無忌' and age 28


    ? ?

    ? ? Integer rows = userMapper.update(null, updateWrapper);? //省略實體,設(shè)置為null


    ? ? ? ? System.out.println("影響記錄數(shù):" + rows);

    ? ? }


    ? ? ?@Test

    ? ? public void updateByWrapperLambda(){

    ? ? LambdaUpdateWrapper<User> lambdaUpdate = Wrappers.<User>lambdaUpdate();

    ? ? //UPDATE user SET age = 31 , email = 'uywyeiu@126.com' WHERE name = '張無忌' and age = 30

    ? ? lambdaUpdate.eq(User::getName, "張無忌").eq(User::getAge, 30)

    ? ? ? ? ? ? ? ? .set(User::getAge, 31).set(User::getEmail, "uywyeiu@126.com");


    ? ?

    ? ? Integer rows = userMapper.update(null, lambdaUpdate);


    ? ? ? ? System.out.println("影響記錄數(shù):" + rows);

    ? ? }



    ? ? ?@Test

    ? ? public void updateByWrapperLambdaChain(){

    ? ? boolean updateBool = new LambdaUpdateChainWrapper<User>(userMapper)

    ? ? ? ? ? ? ? ? ?.eq(User::getName, "張無忌").eq(User::getAge, 31)

    ? ? ? ? ? ? ? ? ?.set(User::getAge, 34).set(User::getEmail, "434444322@qq.com")

    ? ? ? ? ? ? ? ? ? ? ?.update();


    ? ? ? ? System.out.println(updateBool);? //成功:true? ?失敗:false

    ? ?

    ? ? }

    }

    查看全部
    0 采集 收起 來源:更新方法

    2022-09-04

  • ?/**

    ? ? ?* TODO 分頁插件的用法

    ? ? ?* 實現(xiàn)分頁,方法1

    ? ? ?*/

    ? ? @Test

    ? ? public void selectPage() {

    ? ? ? ? QueryWrapper<User> queryWrapper = new QueryWrapper<>();

    ? ? ?

    ? ? ? ? //SELECT COUNT(1) FROM user WHERE age >= 26? ? ?

    ? ? ? ? queryWrapper.ge("age", 26);


    ? ? ? ? //SELECT * FROM user WHERE age >= ? LIMIT ?,?

    ? ? ? ? Page<User> page = new Page<User>(1, 2);


    ? ? ? ? IPage<User> iPage = userMapper.selectPage(page, queryWrapper);

    ? ? ? ? System.out.println("總頁數(shù):" + iPage.getPages());

    ? ? ? ? System.out.println("總記錄數(shù):" + iPage.getTotal());


    ? ? ? ? List<User> userList = iPage.getRecords();

    ? ? ? ? userList.forEach(System.out::println);

    ? ? }


    ? ? ?/**

    ? ? ?* TODO 分頁插件的用法

    ? ? ?* 實現(xiàn)分頁,方法2

    ? ? ?*/

    ? ? @Test

    ? ? public void selectPage2() {

    ? ? ? ? QueryWrapper<User> queryWrapper = new QueryWrapper<>();

    ? ? ?

    ? ? ? ? //SELECT COUNT(1) FROM user WHERE age >= 26? ? ?

    ? ? ? ? queryWrapper.ge("age", 26);


    ? ? ? ? //SELECT * FROM user WHERE age >= ? LIMIT ?,?

    ? ? ? ? Page<User> page = new Page<User>(1, 2);


    ? ? ? ? IPage<Map<String, Object>> selectMapsPage =? userMapper.selectMapsPage(page, queryWrapper);

    ? ? ? ? System.out.println("總頁數(shù):" + selectMapsPage.getPages());

    ? ? ? ? System.out.println("總記錄數(shù):" + selectMapsPage.getTotal());


    ? ? ? ? List<Map<String, Object>> userList = selectMapsPage.getRecords();

    ? ? ? ? userList.forEach(System.out::println);

    ? ? }



    查看全部
    1 采集 收起 來源:分頁查詢

    2022-09-04

  • 分頁的方法


    查看全部
    0 采集 收起 來源:分頁查詢

    2022-09-04

  • public interface UserMapper extends BaseMapper<User> {


    ? ??

    ? ? //注解的方式實現(xiàn)自定義SQL

    ? ? @Select("select * from user ${ew.customeSqlSegment}")

    ? ? List<User> selectAll(@Param(Constants.WRAPPER) Wrapper<User> wrapper);


    ? ? /**

    ? ? //對應(yīng)的XML寫法

    ? ? <select id="selectAll" resultType="com.entity.User">

    ? ? select * from user ${ew.customeSqlSegment}

    ? ? </select>

    ?

    ? ? */





    }

    查看全部
    0 采集 收起 來源:自定義sql

    2022-09-04


  • import com.baomidou.mybatisplus.core.conditions.Wrapper;

    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

    import com.baomidou.mybatisplus.core.toolkit.Wrappers;

    import com.mp.dao.UserMapper;

    import com.mp.entity.User;

    import org.junit.Test;

    import org.junit.runner.RunWith;

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.boot.test.context.SpringBootTest;

    import org.springframework.test.context.junit4.SpringRunner;


    import java.util.Arrays;

    import java.util.HashMap;

    import java.util.List;

    import java.util.Map;


    /**

    ?* @Description

    ?* @auther mohuani

    ?* @create 2019-12-25 11:37

    ?*/

    @RunWith(SpringRunner.class)

    @SpringBootTest

    public class RetrieveTest {


    ? ? @Autowired

    ? ? private UserMapper userMapper;


    ? ? @Test

    ? ? public void selectById() {

    ? ? ? ? User user = userMapper.selectById(1088250446457389058L);

    ? ? ? ? System.out.println(user);

    ? ? }


    ? ? @Test

    ? ? public void selectBatchIds() {

    ? ? ? ? List<Long> list = Arrays.asList(1088248166370832385L, 1094590409767661570L, 1209509417456001025L);

    ? ? ? ? List<User> userList = userMapper.selectBatchIds(list);

    ? ? ? ? userList.forEach(System.out::println);

    ? ? }


    ? ? @Test

    ? ? public void selectByMap() {

    ? ? //where name='李藝偉' and age = 28

    ? ? ? ? Map<String, Object> columnMap = new HashMap<>();

    ? ? ? ? columnMap.put("name", "李藝偉");

    ? ? ? ? columnMap.put("age", 28);

    ? ? ? ? List<User> userList = userMapper.selectByMap(columnMap);

    ? ? ? ? userList.forEach(System.out::println);

    ? ? }


    ? ? /**

    ? ? ?* 1、名字中包含雨并且年齡小于40

    ? ? ?*? ? ?name like '%雨%' and age<40

    ? ? ?*/

    ? ? @Test

    ? ? public void selectByWrapper() {

    ? ? ? ? QueryWrapper<User> queryWrapper = new QueryWrapper<>();

    ? ? ? ? //QueryWrapper<User> queryWrapper = Wrappers.<User>query();

    ? ? ? ? queryWrapper.like("name", "雨").lt("age", 40);


    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    ? ? ? ? userList.forEach(System.out::println);

    ? ? }


    ? ? /**

    ? ? ?* 2、名字中包含雨年并且齡大于等于20且小于等于40并且email不為空

    ? ? ?*? ? name like '%雨%' and age between 20 and 40 and email is not null

    ? ? ?*/

    ? ? @Test

    ? ? public void selectByWrapper2() {

    ? ? ? ? QueryWrapper<User> queryWrapper = new QueryWrapper<>();

    ? ? ? ? queryWrapper.like("name", "雨").between("age" ,20 ,40).isNotNull("email");


    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    ? ? ? ? userList.forEach(System.out::println);

    ? ? }


    ? ? /**

    ? ? ?* 3、名字為王姓或者年齡大于等于25,按照年齡降序排列,年齡相同按照id升序排列

    ? ? ?*? ? name like '王%' or age>=25 order by age desc,id asc

    ? ? ?*/

    ? ? @Test

    ? ? public void selectByWrapper3() {

    ? ? ? ? QueryWrapper<User> queryWrapper = new QueryWrapper<>();

    ? ? ? ? queryWrapper.likeRight("name", "王").or().gt("age", 25).orderByDesc("age").orderByAsc("id");


    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    ? ? ? ? userList.forEach(System.out::println);

    ? ? }




    ? ? /**

    ? ? *

    ? ? * 創(chuàng)建時間為2019年2月14日并且直屬上級為名字為王姓:

    ? ? * date_format(create_time,'%Y-%m-%d') and manager_id in (select id from user where name like '王%')

    ? ? *

    ? ? */

    ? ? @Test

    public void selectByWrapper4(){

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();


    ? ? ? ? //動態(tài)條件構(gòu)造器:apply。范圍條件構(gòu)造器:insql。

    ? ? ? ? //注意:如果{0}替換為實際值,可能會造成sql注入。

    queryWrapper.apply("date_format(create_time,'%Y-%m-%d') = {0}","2019-02-14").inSql("manager_id","select id from user where name like '王%' ");

    //queryWrapper.apply("date_format(create_time,'%Y-%m-%d') = '2019-02-14'").inSql("manager_id","select id from user where name like '王%' ");? //此種寫法存在SQL注入的風(fēng)險


    List<User> userList = userMapper.selectList(queryWrapper);


    userList.forEach(System.out::println);

    }


    ? ?

    ? ? /**

    ? ? * 5.名字為王姓并且(年齡小于40或郵箱不為空)

    ? ? * name like '王%' and (age < 40 or email is not null)

    ? ? *

    ? ? */

    @Test

    public void selectByWrapper5(){

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    queryWrapper.likeRight("name","王").and(wq->wq.lt("age", 40).or().isNotNull("email"));



    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    userList.forEach(System.out::println);

    }


    ? ? /**

    ? ? * 6. 名字為王姓或者(年齡小于40并且年齡大于20并且郵箱不為空)

    ? ? * name like '王%' or (age < 40 and ang > 20 and email is not null)

    ? ? *

    ? ? */

    @Test

    public void selectByWrapper6(){

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    queryWrapper.likeRight("name", "王").or(wq -> wq.lt("age", 40).gt("age", 20).isNotNull("email"));



    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    userList.forEach(System.out::println);

    }


    ? ??

    ? ?

    ? ? ?/**

    ? ? * 7. (年齡小于40或郵箱不為空)并且名字為王姓

    ? ? * (age < 40 or email is not null) and name like '王%'

    ? ? *

    ? ? */

    @Test

    public void selectByWrapper7(){

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    queryWrapper.nested(wq -> wq.lt("age", 40).or().isNotNull("email")).likeRight("name", "王");



    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    userList.forEach(System.out::println);

    }


    /**

    ? ? * 8. 年齡為30,31,34,35

    ? ? * age in (30,31,34,35)

    ? ? *

    ? ? */

    @Test

    public void selectByWrapper8(){

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    queryWrapper.in("age". Arrays.asList(30,31,34,35));



    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    userList.forEach(System.out::println);

    }


    /**

    ? ? * 9. 值返回滿足條件的其中一條語句即可

    ? ? * limit 1

    ? ? *

    ? ? */

    @Test

    public void selectByWrapper9(){

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    //last函數(shù) 無視優(yōu)化規(guī)則直接拼接到sql的最后,只能調(diào)用一次,調(diào)用多次以最后一次為準(zhǔn),有sql注入風(fēng)險

    queryWrapper.in("age". Arrays.asList(30,31,34,35)).last("limit 1");



    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    userList.forEach(System.out::println);

    }


    /**

    * select中字段不全部出現(xiàn)的查詢

    ? ? * 10. 名字中包含雨且年齡小于40

    ? ? * (1)select id,name from user where name like '%雨%' and age < 40

    ? ? * (2)select id,name,age, email from user where name like '%雨%' and age < 40

    ? ? */

    @Test

    public void selectByWrapper10(){

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    //在select函數(shù)中指定需要查詢的字段

    //select id,name from user where name like '%雨%' and age < 40

    //queryWrapper.select("id", "name").like("name", "雨")lt("age", 40);


    ? ? ? ? //在select函數(shù)中排除不需要的字段

    //select id,name,age, email from user where name like '%雨%' and age < 40

    queryWrapper.like("name", "雨")lt("age", 40).select(User.class, info -> !info.getColumn().equals("create_time") && !info.getColumn().equals("manager_id"));



    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    userList.forEach(System.out::println);

    }




    ? ? /**

    ? ? * 實體對象作為條件構(gòu)造器方法的參數(shù)

    ? ? */

    @Test

    public void selectByWrapperEntity(){

    ? ? ? ? User user = new User();

    ? ? ? ? user.setName("李藝偉");

    ? ? ? ? user.setAge(28)


    QueryWrapper<User> queryWrapper = new QueryWrapper<User>(user);



    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    userList.forEach(System.out::println);

    }


    ? ? ?

    ? ? /*

    ? ? * condition 條件判斷,當(dāng)條件為true則查詢條件加入where

    ? ? * 作用:該條件是否加入最后生成的sql中。

    ? ? * 使用方法:如果為true就加入,如果false就不加入。

    ? ? * 使用場景:類似于動態(tài)的sql拼接。

    ? ? */

    @Test

    public void testCondition(){

    String name = "王";

    String email = "";

    condition(name, email);

    }


    private void condition(String name, String email){

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    //第一種寫法

    /*if(StringUtils.isNotEmpty(name)){

    queryWrapper.like("name", name);

    }

    if(StringUtils.isNotEmpty(email)){

    queryWrapper.like("email", email);

    }*/


    //第二種寫法

    queryWrapper.like(StringUtils.isNotEmpty(name), "name", name)

    ? ? ? ? ? ? .like(StringUtils.isNotEmpty(email), "email", email);




    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    userList.forEach(System.out::println);

    }



    ? ? /**

    ? ? * allEq函數(shù)用法

    ? ? */

    @Test

    public void selectByWrapperAllEq(){

    ? ? ? ??

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    Map<String, Object> columnMap = new HashMap<>();

    ? ? ? ? columnMap.put("name", "李藝偉");

    ? ? ? ? columnMap.put("age", 28);


    ? ? ? ? //columnMap.put("age", null);

    ? ? ? ? //queryWrapper.allEq(columnMap, false);? ?//忽略一個值


    ? ? ? ? //queryWrapper.allEq(columnMap);


    ? ? ? ? queryWrapper.allEq((k,v) -> !k.equals("name"), columnMap);? //不等于name值的就加入條件



    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    userList.forEach(System.out::println);

    }


    ? ??

    ? ? /**

    ? ? *? selectMaps()用法

    ? ? *? selectMap:List集合的泛型不再是實體,而是map集合。其中key表示字段名,value表示字段值。

    ? ? *??

    ? ? *? 使用場景1:當(dāng)實體類屬性非常多時,不易查看。如果返回的是一個實體類,那么即使我們設(shè)定了返回字段,那么它的值為null,但是屬性仍然存在。如果返回的是Map類型,當(dāng)指定了返回字段時,那么沒返回的就不會存在。


    ? ? *? 使用場景2:當(dāng)返回的不是一條一條記錄時,也就是返回的字段不在實體類屬性中,比如一些統(tǒng)計,像平均值,最大值,最小值這樣的。

    ? ? */

    @Test

    public void selectByWrapperMaps(){

    ? ? ??

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    //queryWrapper.like("name","雨").lt("age", 40);

    queryWrapper.select("id", "name").like("name", "雨").lt("age", 40);



    ? ? ? ? List<Map<String, Object>> userList = userMapper.selectMaps(queryWrapper);

    userList.forEach(System.out::println);

    }


    /**

    selectMaps用于返回自定義字段和查詢特定字段時避免其他字段為null


    selectObjs用于返回結(jié)果的第一個字段


    selectCount不能帶select,因為它查詢的時記錄數(shù)量,對應(yīng)于sql中的count(1)


    selectOne用于輸出一條結(jié)果,如果多與一條報錯

    ? ? */


    ? ? /**

    ? ? ?按照直屬上級分組,查詢每組的平均年齡,最大年齡,最小年齡并且只取年齡總和小于500的組


    ? ? ?select avg(age) AS avg_age, min(age) AS min_age,max(age) AS max_age

    ? ? ?from user group by manager_id

    ? ? ?having sum(age)? < 500

    ? ? */

    @Test

    public void selectByWrapperMaps2(){

    ? ? ??

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    queryWrapper.select("avg(age) avg_age", "min(age) min_age", "max(age) max_age")

    ? ? ? ? ? ? .groupBy("manager_id").having("sum(age) < {0}", 500);



    ? ? ? ? List<User> userList = userMapper.selectList(queryWrapper);

    userList.forEach(System.out::println);

    }



    ? ? /**

    ? ? selectObject:List集合的泛型不再是實體,而是Object,只返回第一個字段的值。其他的會被舍棄。

    ? ? 使用場景:只返回一列時可以使用它。

    ? ? */

    @Test

    public void selectByWrapperObjs(){

    ? ? ??

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    queryWrapper.select("id", "name").like("name", "雨").lt("age", 40);



    ? ? ? ? List<Object> userList = userMapper.selectObjs(queryWrapper);

    userList.forEach(System.out::println);

    }




    ? ? /**

    ? ? selectCount:查詢符合條件的總記錄數(shù)的。

    ? ? 注意:使用它時,就不能指定返回的列了,因為它會在后面拼接COUNT(1)。

    ? ? */

    @Test

    public void selectByWrapperCount(){

    ? ? ??

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    queryWrapper.like("name", "雨").lt("age", 40);



    ? ? ? ? Integer count = userMapper.selectCount(queryWrapper);

    System.out.println("總記錄數(shù) = " + count);

    }


    ? ??


    ? ? /**

    ? ? selectOne:查詢符合條件的數(shù)據(jù),只會返回一條數(shù)據(jù)。

    ? ? 注意:查詢的結(jié)果必須是一條或者查不到(多于1條就會報錯)。

    ? ? */

    ? ? @Test

    public void selectByWrapperOne(){

    ? ? ??

    QueryWrapper<User> queryWrapper = new QueryWrapper<User>();

    queryWrapper.like("name", "雨").lt("age", 40);


    User user = userMapper.selectOne(queryWrapper);


    ? ? ? ? System.out.println(user);

    ? ? ? ??

    }



    ? ? /**

    ? ? ?lambda條件構(gòu)造器

    ? ? ?lambda條件構(gòu)造器的創(chuàng)建有3種方式


    1、通過查詢構(gòu)造器QueryWrapper創(chuàng)建


    2、通過new直接創(chuàng)建lambda條件構(gòu)造器


    3、通過構(gòu)造器工具類Wrappers創(chuàng)建(此時需要泛型)

    ? ? */

    @Test

    public void selectLambda(){

    ? ? //方式1

    //LambdaQueryWrapper<User> lambda = new QueryWrapper<User>().lambda();

    ? ? //方式二

    ? ? //LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<User>();

    //方式三

    ? ? LambdaQueryWrapper<User> lambdaQuery = Wrappers.<User>lambdaQuery();

    ? ? //where name like '%雨%' and age < 40

    ? ? lambdaQuery.like(User::getName, "雨").lt(User::getAge, 40);


    ? ? List<User> userList = userMapper.selectList(lambdaQuery);

    ? ? userList.forEach(System.out::println);

    ? ? ? ??

    }



    ? ??

    ? ? /**

    ? ? * 5.名字為王姓并且(年齡小于40或郵箱不為空)

    ? ? * name like '王%' and (age < 40 or email is not null)

    ? ? */

    @Test

    public void selectLambda2(){

    ? ? //方式1

    //LambdaQueryWrapper<User> lambda = new QueryWrapper<User>().lambda();

    ? ? //方式二

    ? ? //LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<User>();

    //方式三

    ? ? LambdaQueryWrapper<User> lambdaQuery = Wrappers.<User>lambdaQuery();

    ? ? //where name like '%雨%' and age < 40

    ? ? lambdaQuery.likeRight(User::getName, "王").and(lqw -> lqw.lt(User::getAge, 40)

    ? ? .or().isNotNull(User::getEmail));



    ? ? List<User> userList = userMapper.selectList(lambdaQuery);

    ? ? userList.forEach(System.out::println);

    ? ? ? ??

    }



    @Test

    public void selectLambda3(){

    ? ? //新版本

    ? ? List<User> userList = new LambdaQueryChainWrapper<User>(userMapper).like(User::getName, "雨")

    ? ? ? ? ? ? ? ? ? ? ? ? ? .ge(User::getAge, 20).list();


    ? ? userList.forEach(System.out::println);

    ? ? ? ??

    }




    }

    查看全部
  • lambda條件構(gòu)造器


    查看全部
  • 通用Mapper

    Map<String,Object> params = new HashMap<String,Object>();

    params.put("name","王天風(fēng)");

    params.put("age",null);

    queryWrapper.allEq((k,v)->!k.equals("name"),params);

    List<User> userList = userMapper.selectList(queryWrapper);

    查看全部
    0 采集 收起 來源:AllEq用法

    2022-08-28

  • 這樣查詢條件即為傳入實體中的屬性值。

    若查詢條件需要模糊查詢,可在實體字段上加注解:@TableFiled(condition=SqlCondition.LIKE) 表示該字段使用模糊查詢?


    若查詢條件要求不等值,可在實體字段上加注解:例如在age上加注解@TableFiled(condition="%s&lt;#{%s}"),表示age<#{age}



    查看全部
  • 通用Mapper

    查看全部
  • 代碼

    package?com.mp;
    
    import?com.baomidou.mybatisplus.core.conditions.Wrapper;
    import?com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    import?com.baomidou.mybatisplus.core.toolkit.Wrappers;
    import?com.mp.dao.UserMapper;
    import?com.mp.entity.User;
    import?org.junit.Test;
    import?org.junit.runner.RunWith;
    import?org.springframework.beans.factory.annotation.Autowired;
    import?org.springframework.boot.test.context.SpringBootTest;
    import?org.springframework.test.context.junit4.SpringRunner;
    
    import?java.util.Arrays;
    import?java.util.HashMap;
    import?java.util.List;
    import?java.util.Map;
    
    /**
    ?*?@Description
    ?*?@auther?mohuani
    ?*?@create?2019-12-25?11:37
    ?*/
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public?class?RetrieveTest?{
    
    ????@Autowired
    ????private?UserMapper?userMapper;
    
    ????@Test
    ????public?void?selectById()?{
    ????????User?user?=?userMapper.selectById(1088250446457389058L);
    ????????System.out.println(user);
    ????}
    
    ????@Test
    ????public?void?selectBatchIds()?{
    ????????List<Long>?list?=?Arrays.asList(1088248166370832385L,?1094590409767661570L,?1209509417456001025L);
    ????????List<User>?userList?=?userMapper.selectBatchIds(list);
    ????????userList.forEach(System.out::println);
    ????}
    
    ????@Test
    ????public?void?selectByMap()?{
    ????????Map<String,?Object>?columnMap?=?new?HashMap<>();
    ????????columnMap.put("name",?"李藝偉");
    ????????columnMap.put("age",?28);
    ????????List<User>?userList?=?userMapper.selectByMap(columnMap);
    ????????userList.forEach(System.out::println);
    ????}
    
    ????/**
    ?????*?1、名字中包含雨并且年齡小于40
    ?????*?????name?like?'%雨%'?and?age<40
    ?????*/
    ????@Test
    ????public?void?selectByWrapper()?{
    ????????QueryWrapper<User>?queryWrapper?=?new?QueryWrapper<>();
    ????????queryWrapper.like("name",?"雨").lt("age",?40);
    
    ????????List<User>?userList?=?userMapper.selectList(queryWrapper);
    ????????userList.forEach(System.out::println);
    ????}
    
    ????/**
    ?????*?2、名字中包含雨年并且齡大于等于20且小于等于40并且email不為空
    ?????*????name?like?'%雨%'?and?age?between?20?and?40?and?email?is?not?null
    ?????*/
    ????@Test
    ????public?void?selectByWrapper2()?{
    ????????QueryWrapper<User>?queryWrapper?=?new?QueryWrapper<>();
    ????????queryWrapper.like("name",?"雨").between("age"?,20?,40).isNotNull("email");
    
    ????????List<User>?userList?=?userMapper.selectList(queryWrapper);
    ????????userList.forEach(System.out::println);
    ????}
    
    ????/**
    ?????*?3、名字為王姓或者年齡大于等于25,按照年齡降序排列,年齡相同按照id升序排列
    ?????*????name?like?'王%'?or?age>=25?order?by?age?desc,id?asc
    ?????*/
    ????@Test
    ????public?void?selectByWrapper3()?{
    ????????QueryWrapper<User>?queryWrapper?=?new?QueryWrapper<>();
    ????????queryWrapper.likeRight("name",?"王").or().gt("age",?25).orderByDesc("age").orderByAsc("id");
    
    ????????List<User>?userList?=?userMapper.selectList(queryWrapper);
    ????????userList.forEach(System.out::println);
    ????}
    }


    查看全部
  • QueryWrapper<User> queryWrapper=new QueryWrapper<User>();

    //QueryWrapper<User> query=Wrappers<User>query();

    queryWrapper.like("name","雨").lt("age",40);




    查看全部
  • mapper查詢用法

    查看全部
    0 采集 收起 來源:普通查詢

    2022-08-27

  • 普通查詢:使用方式為實現(xiàn)BaseMapper<T>接口對象調(diào)用該方法。

    1. T?selectById(Serializable id):使用場景為通過主鍵查詢,只要該主鍵類型實現(xiàn)了Serialzable接口即可。

    2. List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList):使用場景為通過主鍵的集合去批量查詢,前提主鍵的類型實現(xiàn)了Serializable接口。傳入array

    3. List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String,Object> columnMap):使用場景為傳入一個Map集合,key為表字段,value為表字段值。注意:Map的key為數(shù)據(jù)表的字段名,不是實體類屬性名。


    查看全部
    0 采集 收起 來源:普通查詢

    2022-08-27

  • mybatis-plus:主鍵采用雪花算法生成值的前提是實體類的主鍵屬性名稱必須為id。


    mybatis-plus:數(shù)據(jù)表字段帶有_的可以自動映射到駝峰式命名的屬性上(t_user 映射為 tUser)。


    注解:


    @TableName(“數(shù)據(jù)庫表名”):使用場景實體類名稱和數(shù)據(jù)表名不一致時,通過它指定表名,此時就可以使用mp的單表操作。


    @TableId(“主鍵名”):使用場景實體類屬性名稱和數(shù)據(jù)表主鍵不是id時,通過它聲明該屬性為主鍵,就可以采用雪花算法生成主鍵值操作。


    @TableField(“字段名”):使用場景實體類屬性名稱和數(shù)據(jù)表字段名不一致時,通過它指定數(shù)據(jù)表字段名稱,就可以和實體類屬性一起使用。



    排除非表字段的三種方式

    使用場景:實體類中的某個屬性不對應(yīng)表中的任何字段,只是用于保存臨時數(shù)據(jù),或者臨時組裝的數(shù)據(jù)。

    使用方式

    1、transient修飾實體類屬性(修飾的屬性不會被序列化)。缺陷:有些需求需要序列化該字段。

    2、static修飾屬性(前提手動實現(xiàn)get、set方法,Lombok對靜態(tài)屬性不會提供get、set方法)。缺陷:每個對象的屬性值一致。

    3、@TableField(exist=false),這個注解用來表示數(shù)據(jù)表中不存在該字段,默認是true。推薦

    查看全部

舉報

0/150
提交
取消
課程須知
1、有Java開發(fā)基礎(chǔ),了解Lambda表達式; 2、至少會使用一種關(guān)系型數(shù)據(jù)庫; 3、熟悉Maven; 4、熟悉SpringBoot; 5、最好熟悉MyBatis。
老師告訴你能學(xué)到什么?
1、了解MP的基本原理及框架特點; 2、掌握MP通用Mapper的使用; 3、掌握MP常用注解的使用; 4、掌握ActiveRecord模式的使用; 5、掌握MP多種主鍵策略的使用; 6、掌握MP常用配置的使用; 7、掌握MP通用Service的使用; 8、掌握MP在某些應(yīng)用場景下的具體使用方式。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復(fù)購買,感謝您對慕課網(wǎng)的支持!