10. 注解

空~2022年8月30日
  • mybatis
小于 1 分钟

10. 注解

本质:反射机制实现

底层:动态代理

注解

Mybatis 详细执行流程

注解2

注解 CRUD

在工具类创建的时候实现自动提交事务

  1. 自动提交事务

    public static SqlSession getSession() {
        return sqlSessionFactory.openSession(true);
    }
    
  2. 编写接口

    /**
      * 注解形式
      *
      * @return 全部用户信息
      */
    @Select("select * from user")
    List<User> getUsers();
    
    /**
      * 注解形式条件查询
      *
      * @param id id
      * @param name name
      * @return user
      */
    @Select("select * from user where id = #{id} and name = #{name}")
    User getUserById(@Param("id") int id, @Param("name") String name);
    
  3. 测试

    public void testGetUserById(){
        SqlSession session = MybatisUtils.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        User admin = mapper.getUserById(1, "admin");
        System.out.println(admin);
        session.close();
    }
    

关于@param()注解:

  • 基本数据类型和 String 类型需要加上
  • 引用数据类型不用加
  • 如果只有一个基本类型, 可以忽略,建议加上
  • 我们在 SQL 中引用的就是@param("id")中设定的属性名, 可以使用该注解为字段取别名