【Mybatis系列】注解

MyBatis3构建在全面而且强大的Java 注解(Java annotation)之上。MyBatis注解提供了一种便捷的方式来实现简单映射语句,而不会引入大量的xml配置开销。 在没有注解之前,xml被广泛的应用于描述元数据,xml的维护越来越糟糕。在需要紧耦合的地方,比xml更容易维护,阅读更方便。在需要比较多参数设置时,使用xml更方便,而在将某个方法声明为服务时这种紧耦合的情况下,比较适合注解。
 

一、常用注解:

1、SQL语句映射

@Insert:实现新增功能

@Select注解:实现查询功能

@SelectKey注解:插入后,获取id的值

@Insert注解:实现插入功能

@Update注解:实现更新功能

@Delete注解:实现删除功能

2、结果集映射

@Result,@Results,@ResultMap是结果集映射的三大注解。

3、关系映射

@one注解:用于一对一关系映射

@many注解:用于一对多关系映射

二、使用注解步骤:

1、接口中添加注解

public interface UserMapper {
  @Select("select * from user")
  List<User> getUserAll();
}
 

2、mybatis核心配置文件中注入

<!--绑定接口-->
<mappers>
    <mapper class="com.jason.dao.UserMapper"/>
</mappers>
 

3、测试

public class UserMapperTest {
  @Test
  public void test(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    List<User> users = mapper.getUserAll();
    for (User user : users) {
      System.out.println(user);
    }
    sqlSession.close();
  }
}
 

三、mybatis详细执行流程

 

四、@param注解

1、@param注解:

注解就是用来简化xml配置的时候使用的,@param注解的作用是给参数命名的,参数命名后能根据名字得到参数值,正确的将参数传入SQL语句中。
 

2、使用原则:

  • 在方法中只接收一个参数的情况下,可以不使用@param注解
  • 在方法接受多个参数的情况下,一定要使用@param注解给参数命名
  • 如果参数是JavaBeans则不能使用
 

3、@param的使用

  • 编写接口方法注解
public interface UserMapper {
  @Select("select * from user where id = #{id}")
  User selectUserById(@Param("id") int id);
}

 

  • 测试
@Test
public void selectUserById(){
  SqlSession sqlSession = MybatisUtils.getSqlSession();
  UserMapper mapper = sqlSession.getMapper(UserMapper.class);
  User user = mapper.selectUserById(1);
  System.out.println(user);
  sqlSession.close();
}

五、Lombok

1、Lombok项目

是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。
 

2、常用注解:

@Setter :注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
@Getter :使用方法同上,区别在于生成的是getter方法。
@ToString :注解在类,添加toString方法。
@EqualsAndHashCode: 注解在类,生成hashCode和equals方法。
@NoArgsConstructor: 注解在类,生成无参的构造方法。
@RequiredArgsConstructor: 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
@AllArgsConstructor: 注解在类,生成包含类中所有字段的构造方法。
@Data: 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
@Slf4j: 注解在类,生成log变量,严格意义来说是常量。

3、使用步骤:

(1)IDEA装lombok插件
 
(2)引入相关依赖
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
</dependency>

(3)在代码中添加注解

//GET,SET,ToString,有参,无参构造
@Data 
public class User {
  private int id;
  private String name;
  private String pwd;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术蜗牛-阿春

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值