@RunWith(SpringRunner.class) // 運行器,可以 SpringBoot 環境下運行 junit 測試
@SpringBootTest // 可以運行基於 SpringBoot 的測試
public class TestMpInsert {
@Autowired
private EmployeeMapper employeeMapper;
@Test
public void testDataSource () {
List<Employee> list = employeeMapper.selectList(null);
// Assert.assertEquals(4, list.size());
list.stream()
.forEach(System.out::println);
}
/**
* 1.1 新增
* 注意添加無參的構造方法,可以直接添加 @NoArgsConstructor 無參的構造方法
*/
@Test
public void testInsert() {
Employee employee = new Employee("Jack", "[email protected]", 1, 40, LocalDateTime.now());
int rows = employeeMapper.insert(employee);
System.out.println("影響記錄數:" + rows);
List<Employee> employees = employeeMapper.selectList(null);
employees.stream()
.map((em) -> em.getLastName().equals("Jack"))
.forEach(System.out::println);
List<Employee> employeeList = employees.stream()
.filter((e) -> e.getLastName().equals("Jack"))
.collect(Collectors.toList());
System.out.println(employeeList);
}
/**
* 1.2 常用註解
* @TableName("tb1_employee") // 指定表名稱
* @TableId // 指定主鍵 id
* @TableField("name") // 指定數據庫中的字段名稱
*
* 當數據庫表的名稱和我們創建的實體類名稱不一致的時候,可以使用 @TableName 指定表
* 當我們添加數據,省略主鍵的時候,BaseMapper 自動計算得到的逐漸名稱爲 id ,
* 當然在這裏是 userId 找不到,所以使用 @TableId 指定主鍵
* 當我們的類屬性名稱和表中的字段不匹配,可以使用 @TableField 指定對應關係
*/
@Test
public void testTableAnno() {
Employee employee = new Employee("Jackjj", "[email protected]", 1, 40, LocalDateTime.now());
int rows = employeeMapper.insert(employee);
System.out.println("影響記錄數:" + rows);
}
/**
* 1.3 排除非表字段的三種方式
* a.將成員變量設置成 transient 使之不參與序列化過程
* b.將成員變量設置成 static 也不會參與序列化,lombok 不會爲 static 變量設置 get set 方法,要自己寫
* c.添加 @TableField(exist = false) 設置成不是數據庫字段
*
* 最後一種最好
*/
@Test
public void testNotTable() {
Employee employee = new Employee("向前", "[email protected]", 1, 40, LocalDateTime.now());
employee.setRemark("這是一個註釋");
System.out.println(employeeMapper.insert(employee));
}
}
MybatisPlus--2.插入
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.