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、查詢測試