Mybatis学习笔记3
Mybatis注解开发
官方说法中有这么一句话
使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪。 因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句
- 常见的简单注解
@Select("select * from user where uid = #{uid}")
User selectUser(@Param("uid") int uid);
写此类注解方法注意一点
参数有多个的时候,必须要使用@Param
注解,以免sql注入混乱
关于@param
注解:
- 基本类型的参数或者String类型,需要加上
- 引用类型不需要加
- 如果只有一个基本类型的话,可以忽略,但是建议大家都加上!
- 我们在SQL中引用的就是我们这里的@Param()中设定的属性名!
使用注解时,须在config文件中注册相应的映射接口
例如:
<mappers>
<mapper class="cn.edu.ldu.dao.UserMapper"/>
<mapper class="cn.edu.ldu.dao.PersonMapper"/>
<mapper class="cn.edu.ldu.dao.IdCardMapper"/>
</mappers>
- Lombok(额外知识)
废话不多说,先上一段英文
Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
当然我的英语水平很有限,翻译翻译!
译文:Project Lombok是一个java库,它可以自动插入到编辑器和构建工具中,为java锦上添花。永远不要再编写另一个getter或equals方法,使用一个注释,你的类就有了一个全功能的构建器,自动化你的日志变量,等等。
意思就是我们再也不用去写实体类的get
和set
以及toString
等等方法
使用步骤:
- 先导入
Lombok
插件 - 导入
Lombok
maven工具(dependency)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
- 实体类上加上
@Data
注解
最后如下:
@Data
public class User {
private int id;
private String name;
private int age;
}
有没有觉得很哇塞,觉得很哇塞就给我点个赞呗
但是请注意!!!
Lombok中有很多的注解,@Data
只是其中一种,有参构造和无参构造它只有无参构造,有参构造需要加上@AllArgsConstructor
注解,但两种注解同时存在时则没有无参构造,则需加上@NoArgsConstructor
注解。
额,我觉得你肯定有迷惑,自己可以去试试看嘛,Lombok相关注解很多的,你可以慢慢尝试。
Lombok官方
但就我而言,这对于初学者来说完全没有必要,还是得勤劳的写代码!