• 注解开发


    注解开发

    使用注解开发

    1. 注解在接口上实现

      @Select("select * from user")
      List<User> getUser();
      
    2. 需要在核心配置文件中绑定接口

      <mapper class="cn.pinked.dao.UserMapper"/>
      
    3. 测试

      @Test
          public void getUser() {
              SqlSession sqlSession = MybatisUtils.getSqlSession();
              UserMapper mapper = sqlSession.getMapper(UserMapper.class);
              List<User> userList = mapper.getUser();
              for (User user : userList) {
                  System.out.println(user);
              }
              sqlSession.close();
          }
      
    • 本质:反射机制实现

    • 底层:动态代理

    CRUD

    可以在工具类创建时实现自动提交事务

    public static SqlSession getSqlSession() {
        return sqlSessionFactory.openSession(true);
    }
    

    编写接口

    public interface UserMapper {
        @Select("select * from user")
        List<User> getUser();
    
        @Select("select * from user where id = #{id}")
        User getUserById(@Param("id") int id);
    
        @Insert("insert into user(id, name, pwd) values (#{id}, #{name}, #{password})")
        int addUser(User user);
    
        @Update("update user set name = #{name}, pwd = #{password} where id = #{id}")
        int updateUser(User user);
    
        @Delete("delete from user where id = #{id}")
        int deleteUser(@Param("id") int id);
    }
    

    测试类

    SqlSession sqlSession = MybatisUtils.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    
    //        List<User> userList = mapper.getUser();
    //        for (User user : userList) {
    //            System.out.println(user);
    //        }
    //
    //        User user = mapper.getUserById(3);
    //        System.out.println(user);
    //
    //        int res = mapper.addUser(new User(5, "王五", "123456"));
    //
    //        int res = mapper.updateUser(new User(5, "王大五", "12345"));
    //
    //        mapper.deleteUser(5);
    
            sqlSession.close();
    

    关于@Param()注解

    • 基本类型的参数或者String类型需要加上
    • 引用类型不需要加
    • 如果只有一个基本类型的话可以忽略
    • 在SQL中应用的是@Param("uid")中设定的属性名
  • 相关阅读:
    常见面试题
    Spring boot 集成ckeditor
    SchuledExecutorService 使用controller控制线程关闭
    sql用法
    Spring Boot 全局异常配置
    前端错误提示whitelabel error page
    github使用方法
    前端迭代取出 后台map返回的数据
    Codeforces Beta Round #31 (Div. 2, Codeforces format)
    Codeforces Beta Round #29 (Div. 2, Codeforces format)
  • 原文地址:https://www.cnblogs.com/pinked/p/12175580.html
Copyright © 2020-2023  润新知