MybatisPlus--2.插入

@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));
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章