Mybatis使用注解

使用注解可以代替通过xml文件映射, 在接口中使用注解引用sql语句, 然后核心配置文件中, 将该类放入映射器.

CRUD

查询

  1. 定义接口, 写入sql语句

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public interface UserMapper {

    @Select("select * from user")
    List<User> getUsers();

    // 方法存在多个参数, 所有的参数前面必须加上@Param(" ")注解
    @Select("select * from user where id = #{id}")
    User getUserByID(@Param("id") int id);

    }
  2. 在核心配置文件中将该类加入映射器

    1
    2
    3
    <mappers>
    <mapper class="com.lxb.dao.UserMapper"/>
    </mappers>
  3. 测试

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    @Test
    public void getUsersTest(){
    SqlSession sqlSession = MybtisUtils.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    List<User> users = mapper.getUsers();

    for (User user : users) {
    System.out.println(user);
    }

    sqlSession.close();
    }

    @Test
    public void getUserByIDTest(){
    SqlSession sqlSession = MybtisUtils.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    User user = mapper.getUserByID(2);

    System.out.println(user);

    sqlSession.close();
    }

    能够正常输出

插入

  1. @Insert("insert into user(id, name, pwd) values (#{id}, #{name}, #{pwd})")
    int addUser(User user);
    <!--3-->
    
    注意这里没有手动提交事物是因为在`openSession()`的方法中传入了`true` 来自动提交事物
    

修改

  1. @Update("update user set name = #{name}, pwd=#{pwd} where id=#{id}")
    int updateUser(User user);
    <!--4-->
    

删除

  1. @Delete("delete from user where id=#{id}")
    int deleteUser(@Param("id") int id);
    <!--5-->
    

关于@Param()注解

  • 基本类型的参数或者String类型, 需要加上
  • 引用类型不需要加
  • 如果只有一个基本类型的话, 可以忽略, 但是建议加上
  • 我们在SQL中引用的就是这里设定的属性名
-------------本文结束感谢您的阅读-------------
可以请我喝杯奶茶吗