基础操作
增删改查
- @Select 是查询类的注解,所有的查询均使用这个
- @Result 修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。
- @Insert 插入数据库使用,直接传入实体类会自动解析属性到对应的值
- @Update 负责修改,也可以直接传入对象
- @delete 负责删除
删除操作
完成了相关 Mapper 层开发,使用的时候当作普通的类注入进入就可以了
在测试类中,返回值可以设置成int类型
注意事项:
如果mapper层接口方法形参只有一个普通类型的参数,#{…}里面的属性名可以随便写,如#{id},#{value},在实际开发中,建议两者名保持一致,增强可读性。
日志输出
可以在application.properties中,打开mybatis的日志,并指定输出到控制台。
#指定mybatis输出日志的位置,输出控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
只需在application.properties中输入mybatislog,idea会自动提示,选择mybatis.configuration.log-impl,之后在输入S,选择StdOutImpl即可配置完成
预编译sql
- 性能更高
- 更安全(防止sql注入)
流程
参数占位符
新增操作
测试
运行结果
注意:
- 属性名一般采用驼峰命名,不要写成字段名
- 有多个参数时,可以采用实体类封装
新增(主键返回)
实现:
更新操作
查询操作
数据封装:
- 实体类属性名 和数据库表 查询返回的字段名一致,mybatis会自动封装
- 如果实体类属性名 和数据库表 查询返回的字段名不一致,不能自动封装
解决办法
- 方法一:给字段名起别名,让别名与实体类属性一致
- 方案二:通过@Results、@Result注解手动映射封装
- 方案三:开启mybatis的驼峰命名自动映射开关---- dept_id ===> deptId