**
Mybatis-plus—從零開始的小白修煉手冊(自用,想到啥寫啥)
**
Mybatis-plus操作步驟
1.導入jar包
<!--spring整合mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
2. POJO與表綁定
//最好與數據庫中的字段一致
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain=true)
@TableName //實現了對象與表的映射關係 如果表名相同,則可以省略不寫
public class User {
@TableId(type=IdType.AUTO) //定義主鍵,主鍵自增
private Integer id;
//@TableField("name") //關聯表字段,規則如果屬性名稱與字段名稱一致則
//可以省略不寫(包含駝峯規則)
private String name;
private Integer age;
private String sex;
}
3.繼承BaseMapper接口
3. SpringBoot整合MP
#編輯Mybatis配置
mybatis-plus:
type-aliases-package: com.jt.pojo #定義別名包
mapper-locations: classpath:/mybatis/mappers/*.xml #加載mapper映射文件
#開啓駝峯映射
configuration:
map-underscore-to-camel-case: true
4.Mybatis-plus入門案例
@SpringBootTest
public class TestMP {
@Autowired
private UserMapper userMapper;
/**
* 用戶入庫測試
*/
@Test
public void insert() {
User user = new User();
user.setName("MP測試")
.setAge(19)
.setSex("女");
userMapper.insert(user);
//單表操作幾乎不寫sql. 以對象的方式操作數據庫!!!
}
}
2.Mybatis-Plus 常規操作方法
增
/**
* 用戶入庫測試
*/
@Test
public void insert() {
User user = new User();
user.setName("MP測試")
.setAge(19)
.setSex("女");
userMapper.insert(user);
//單表操作幾乎不寫sql. 以對象的方式操作數據庫!!!
}
刪
/**
* 需求:將name="林志玲" sex="女" 用戶刪除
*說明: 刪除的是 查詢出來的數據
*/
@Test
public void select12() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name","林志玲")
.eq("sex","女");
userMapper.delete(queryWrapper);
}
改
/**
* 更新操作 update
* 將id=1911 數據 改爲嫦娥 22歲
*/
@Test
public void select10() {
User user = new User();
//除了主鍵之外的數據,其他不爲null的數據充當where條件
user.setId(1911)
.setName("嫦娥")
.setAge(22);
userMapper.updateById(user);//根據主鍵更新
}
/**
*
* 要求:將1910,1911,1912的數據 改爲林志玲 age=18
* entity:修改數據的實體
* updateWrapper:修改的條件構造器
*/
@Test
public void select11() {
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.in("id", 1910,1911,1912);
User user = new User();
user.setName("林志玲")
.setAge(18);
userMapper.update(user, updateWrapper);
}
查
//查詢操作 查詢單個用戶 id=49
@Test
public void select01() {
User user = userMapper.selectById(49); //id代表主鍵
System.out.println(user);
}
//查詢操作 查詢全部用戶
//sql: select * from user
@Test
public void select02() {
//null相當於 不需要寫where條件
List<User> userList = userMapper.selectList(null);
System.out.println(userList);
}
/**
* 查詢sex="女" and age>300
* 規則: 如果連續操作,則連接符默認and
* > gt =eq < lt
* >= ge <=le
*/
@Test
public void select03() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();//條件構造器
queryWrapper.eq("sex", "女")
.gt("age", 300);
List<User> userList = userMapper.selectList(queryWrapper);
System.out.println(userList);
}
/**
* 查詢sex="女" or age > 300
*/
@Test
public void select04() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();//條件構造器
queryWrapper.eq("sex", "女")
.or()
.gt("age", 300);
List<User> userList = userMapper.selectList(queryWrapper);
System.out.println(userList);
}
/**
* 查詢ID=1,3,5的數據
* sql: xxxxxxxx where id in (1,3,5);
*/
@Test
public void select05() {
List<Integer> idList = new ArrayList<>();
idList.add(1);
idList.add(3);
idList.add(5);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();//條件構造器
//queryWrapper.in("id", idList);
queryWrapper.in("id", 1,3,5);
List<User> userList = userMapper.selectList(queryWrapper);
System.out.println(userList);
}
/**
* 根據對象實現條件查詢
*條件限制: 只能查詢=業務邏輯
* 查詢name="不知火舞" sex="女"
*/
@Test
public void select06() {
User user = new User();
user.setName("不知火舞")
.setSex("女");
//利用對象中不爲null的屬性充當where條件 where name sex
QueryWrapper<User> queryWrapper =
new QueryWrapper<User>(user);
List<User> userList = userMapper.selectList(queryWrapper);
System.out.println(userList);
}
/**
* 查詢sex="女" and name="%精%"
*以喬結尾的數據 %喬
*/
@Test
public void select07() {
QueryWrapper<User> queryWrapper =
new QueryWrapper<User>();
queryWrapper.eq("sex","女")
.likeLeft("name", "喬");
//.like("name","精");
List<User> userList = userMapper.selectList(queryWrapper);
System.out.println(userList);
}
/**
* 查詢age 18-35之間數據,按照性別排序
*/
@Test
public void select08() {
QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
queryWrapper.between("age", 18, 35)
.orderByAsc("sex");
List<User> userList = userMapper.selectList(queryWrapper);
System.out.println(userList);
}