在方法前使用注解的方式

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

本质:使用反射

底层:动态代理

使用注解进行增删改查:

自动提交事务:

工具类:

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);
}
public class User {private int id;private String name;private String pwd;getter setter tostring;
}

测试类

    @Testpublic 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();}@Testpublic void getUserById(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);User userById = mapper.getUserById(2);System.out.println(userById);sqlSession.close();}@Testpublic void addUser(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);mapper.addUser(new User(6,"哈哈哈是的","76543"));sqlSession.close();}@Testpublic 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();}@Testpublic void delete(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);mapper.deleteUser(2);sqlSession.close();}

Mybatis详细执行流程:

  1. Resource获取全局配置文件

  2. 实例化SqlsessionFactoryBuilder

  3. 解析配置文件流XMLCondigBuilder

  4. Configration所有的配置信息

  5. SqlSessionFactory实例化

  6. trasactional事务管理

  7. 创建executor执行器

  8. 创建SqlSession

  9. 实现CRUD

  10. 查看是否执行成功

  11. 提交事务

  12. 关闭

【MyBatis笔记】使用注解开发相关推荐

  1. MyBatis-学习笔记04【04.自定义Mybatis框架基于注解开发】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  2. (Mybatis)使用注解开发

    文章目录 使用注解开发 1.使用步骤 2. 原理 3.Mybatis详细执行流程 4.增删改查 使用注解开发 1.使用步骤 1.注解在接口上实现 @Select("select * from ...

  3. MyBatis-学习笔记12【12.Mybatis注解开发】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  4. springmvc学习笔记(10)-springmvc注解开发之商品改动功能

    springmvc学习笔记(10)-springmvc注解开发之商品改动功能 springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmv ...

  5. 黑马程序员-MyBatis笔记

    一.什么是Mybatis mybatis 是一个优秀的基于java的持久层框架,它内部封装了 jdbc,使开发者只需要关注sql语句本身,而不需要花费精力 去处理加载驱动.创建连接.创建stateme ...

  6. MyBatis_通用mapper注解开发

    文章目录 9. 通用mapper注解开发 9.1. 通过mapper入门案例 9.1.1. 添加mapper依赖 9.1.2. 相关配置文件 - jdbc.properties - mybatis-c ...

  7. Mybatis注解开发笔记

    Mybatis注解开发(笔记) 欢迎来到菜鸟研究所 创建新的Maven项目 配置文件 prom.xml log4j.properties jdbcConfig.properties SqlMapCom ...

  8. Mybatis整体学习笔记-CRUD-配置解析-结果集映射-日志-注解开发-复杂环境-动态SQL-缓存

    MyBatis 要多对官方文档进行学习 https://mybatis.org/mybatis-3/zh/index.html 简介 MyBatis 持久层框架 Dao Access Objects ...

  9. Mybatis 注解开发 + 动态SQL

    Hello 大家好我是橙子同学,今天分享注解Mybatis注解开发+动态sql 目录 每文一铺垫(今天有小插曲哦) 注解开发 添加 @Insert 删除 @Delete 查询 @Select 修改 @ ...

  10. mybatis使用注解开发

    mybatis使用注解开发 面向接口编程 在之前我们是通过面向对象编程,但是在真正开发的时候我们会选择面向接口编程. 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的 ...

最新文章

  1. 理解 Linux 的虚拟内存
  2. DOS 批处理命令学习1
  3. Oracle优化07-分析及动态采样-DBMS_STATS 包
  4. 《Splunk智能运维实战》——3.6 制作每一主机不同请求方法数量的图表
  5. pythonflat怎么设置_python – numpy 2d和1d add flat
  6. 使用extern C改善显式调用dll
  7. 收集17句经典程序员口头禅
  8. python求一组数的最大值_python快速求一个数组的最大值/最小值及其索引
  9. python如何把一张图像的所有像素点的值都显示出来_情人节,教你用 Python 向女神表白...
  10. 简明批处理教程(2)
  11. ssma5.3_使用SSMA v7.1 for Oracle迁移到SQL Server
  12. RapidIOIP核的验证方法研究_王玉欢
  13. 一英寸芯片大小_晶圆和芯片的关系_一个芯片有多少晶圆
  14. 3D建模软件大总结,你都知道哪些?
  15. 【设计模式】五:依赖倒置与里氏代换原则
  16. python是真刑啊!爬虫这样用,离好日子越铐越近了~
  17. NX二次开发CreateDialog函数在UI.hxx文件和WinUser.h中的冲突
  18. 从dtx文件得到cls文件
  19. .Net Core 编码规范
  20. 循环practice

热门文章

  1. Activity.startManagingCursor方法
  2. [导入]Nutch 简介 [官方]
  3. HDU6273 Master of GCD【差分数组】
  4. Bailian1183 POJ1183 反正切函数的应用【迭代计算】
  5. JSK-135 数字加1【大数】
  6. Bailian2880 句中最长的单词【字符串】
  7. PHP语言的RSA算法加解密程序
  8. np.unique 的实现
  9. 概率论 —— 分析计算机系统和网络的可靠性和通用性
  10. Matlab Tricks(十二)—— 矩阵阈值化的实现