在方法前使用注解的方式

【MyBatis笔记】使用注解开发_User

绑定接口到核心配置文件中:

【MyBatis笔记】使用注解开发_Test_02

本质:使用反射

底层:动态代理

使用注解进行增删改查:

自动提交事务: 

工具类:

【MyBatis笔记】使用注解开发_mybatis_03

public interface UserMapper {

    @Select("select * from user")
    //获取全部用户
    List<User>getUser();


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

    @Insert("insert into user(id,name,pwd) values(#{id},#{name},#{pwd})")
    int addUser(User user);

// ---------------------------------------------------

    @Update("update user set name=#{name},pwd=#{pwd} where id=#{id}")
    int updateUser(Map<String,Object>map);
//------------------------------------------------------

    @Delete("delete from user where id=#{id}")
    int deleteUser(@Param("id")int id);
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
public class User {
    private int id;
    private String name;
    private String pwd;
    getter setter tostring;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

 测试类

@Test
    public void getUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> user = mapper.getUser();
        for (User user1 : user) {
            System.out.println(user1);
        }
        sqlSession.close();
    }
    @Test
    public void getUserById(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User userById = mapper.getUserById(2);
        System.out.println(userById);
        sqlSession.close();
    }
    @Test
    public void addUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.addUser(new User(6,"哈哈哈是的","76543"));
        sqlSession.close();
    }
    @Test
    public void updateUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        HashMap<String, Object> map = new HashMap<>();
        map.put("id",2);
        map.put("name","2two");
        map.put("pwd","lasf");
        mapper.updateUser(map);
        sqlSession.close();
    }
    @Test
    public void delete(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.deleteUser(2);
        sqlSession.close();
    }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
Mybatis详细执行流程:
  1. Resource获取全局配置文件
  2. 实例化SqlsessionFactoryBuilder
  3. 解析配置文件流XMLCondigBuilder
  4. Configration所有的配置信息
  5. SqlSessionFactory实例化
  6. trasactional事务管理
  7. 创建executor执行器
  8. 创建SqlSession
  9. 实现CRUD
  10. 查看是否执行成功
  11. 提交事务
  12. 关闭