Mybatis-plus

**

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);
}
發佈了8 篇原創文章 · 獲贊 0 · 訪問量 129
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章