Mybatis基础操作
需求
- 准备数据库表 emp
- 创建一个新的springboot工程,选择引入对应的起步依赖(mybatis、mysql驱动、lombok)
- application.properties中引入数据库连接信息 创建对应的实体类 Emp(实体类属性采用驼峰命名)
- 准备Mapper接口 EmpMapper
@Mapper注解:表示当前接口为mybatis中的Mapper接口
程序运行时会自动创建接口的实现类对象(代理对象),并交给Spring的IOC容器管理
删除
实现前端页面的删除操作时,前端页面会给服务端传递一个参数,也就是该行数据的ID。 我们接收到ID后,根据ID删除数据即可。
功能:根据主键删除数据
例如:删除ID=17的数据
@Delete("delete from emp where id = 17")
public void delete();
以上delete操作的SQL语句中的id值写成固定的17,就表示只能删除id=17的用户数据。
SQL语句中的id值不能写成固定数值,需要变为动态的数值。
解决方案:在delete方法中添加一个参数(用户id),将方法中的参数,传给SQL语句。
@Delete("delete from emp where id = #{id}")//使用#{key}方式获取方法中的参数值
public void delete(Integer id);
@Delete注解:用于编写delete操作的SQL语句
如果mapper接口方法形参只有一个普通类型的参数,#{…} 里面的属性名可以随便写,如:#{id}、#{value}。但是建议保持名字一致。
测试:
在单元测试类中通过@Autowired注解注入EmpMapper类型对象
~~~java
@SpringBootTest
class SpringbootMybatisCrudApplicationTests {
@Autowired //从Spring的IOC容器中,获取类型是EmpMapper的对象并注入
private EmpMapper empMapper;
@Test
public void testDel(){
//调用删除方法
empMapper.delete(16);
}
}
~~~