5、MybatisPlus-Service層-03 -解決實體類名和數據表名不一致問題


Service CRUD 接口

說明:

  • 通用 Service CRUD 封裝IService (opens new window)接口,進一步封裝 CRUD 采用 get 查詢單行 remove 刪除 list 查詢集合 page 分頁 前綴命名方式區分 Mapper 層避免混淆,
  • 泛型 T 為任意實體對象
  • 建議如果存在自定義通用 Service 方法的可能,請創建自己的 IBaseService 繼承 Mybatis-Plus 提供的基類
  • 對象 Wrapper 為 條件構造器

 

Service層

1、創建 service 層接口

public interface UserService extends IService<User> {
}

 

2、創建接口的實現,添加注解

@Service
//我們實現 UserService 接口的時候,UserService接口繼承了 IService 所以可以繼承 ServiceImpl<Mapper接口,實體類> 就可以了
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

 

3、測試方法

創建測試類,連接接口。

@SpringBootTest
public class MyUserServiceImplTest {

    @Autowired
    UserService userService;
}

 

  01、查詢總記錄條數

   /**
     * 查詢表中總記錄數
     */
    @Test
    public void TestGetCount1(){
        int count = userService.count();
        System.out.println(count);

    }

 

  02、查詢表中所有記錄

    /**
     * 查詢表中所有記錄
     */
    @Test
    public void TestGetList2(){
        List<User> list = userService.list();
        for (User user : list) {
            System.out.println("user = " + user);
        }
    }

 

  03、添加一條記錄

   /**
     * 添加一條記錄
     */
    @Test
    public void TestSaveCount3(){
        User user=new User();
        user.setName("張三");
        user.setAge(18);
        user.setEmail("123333244@qq.com");
        boolean save = userService.save(user);
        System.out.println(save);

    }

 

  04、批量添加數據

 

    /**
     * 批量添加數據
     */
    @Test
    public void TestSaveBatch(){
        List<User> list=new ArrayList<>();
        for (int i = 1; i < 5; i++) {
            User user=new User();
            user.setName("libai"+i);
            user.setAge(16+i);
            list.add(user);
        }
        boolean save = userService.saveBatch(list);
        System.out.println(save);
    }

 

 

  05、通過ID修改記錄

/**
     * 通過ID修改記錄
     */
    @Test
    public void TestUpdateCount4(){
        User user=new User();
        user.setId(3L);
        user.setName("李四");
        user.setAge(18);
        user.setEmail("123333244@qq.com");
        boolean save = userService.updateById(user);
        System.out.println(save);

    }

 

  06、通過ID刪除記錄

 

 /**
     * 通過ID刪除記錄
     */
    @Test
    public void TestUpdateCount5(){
        boolean save = userService.removeById(1509435818367836161L);
        System.out.println(save);

    }

  

 

解決數據表名和實體類名不一致問題

方法一

在實體類上添加注解輸入相對應的數據表名:@TableName("表名")

@TableName("user")//綁定上數據表
public class User {
}
//防止數據表字段有下划線
@TableField(value = "user_name")
 

 

方法二

application.properties 中添加配置:

#數據庫中的數據表名中,如果有駝峰命名,添加這個配置可以將所有實體類名前面添加 t_ 和數據庫進行匹配
mybatis-plus.global-config.db-config.table-prefix=t_

 

 

邏輯刪除

用戶在刪除數據的時候,發現刪除了可以回收。

我們可以創建一個字段,判斷用戶是否刪除,如默認值為 0,刪除后修改為 1。

如果用戶發現刪錯了,可以進行找回將值改為0。

 

1、數據表添加字段

 

 

 

 

2、實體類添加屬性,並添加注解: @TableLogic

 

    @TableLogic
    private Integer isDelete;

 

3、刪除測試

 

  @Test
    public void MyDeleteId(){
        boolean b = userService.removeByIds(Arrays.asList(1, 2, 3));
        System.out.println(b);

    }

 

 

刪除結果:

 

 4、查詢測試

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM