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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值