Mybatis使用注解开发 蔚落 2023-06-05 13:59 2阅读 0赞 # Mybatis使用注解开发 # ### 使用注解开发 ### 1. 注解在接口上实现 @Select("select * from user") List<User> getUsers(); 2. 需要再核心配置文件中绑定接口! <!--绑定接口--> <mappers> <mapper class="com.kuang.dao.UserMapper"/> </mappers> 3. 测试 本质:反射机制实现 底层:动态代理! ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjU4NDU0NQ_size_16_color_FFFFFF_t_70] Mybatis详细的执行流程! ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjU4NDU0NQ_size_16_color_FFFFFF_t_70 1] ## CRUD ## 我 们 可 以 在 工 具 类 创 建 的 时 候 实 现 自 动 提 交 事 务 ! 我们可以在工具类创建的时候实现自动提交事务! 我们可以在工具类创建的时候实现自动提交事务! public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession(true); } 1,编写接口,增加注解 public interface UserMapper { @Select("select * from user") List<User> getUsers(); // 方法存在多个参数,所有的参数前面必须加上 @Param("id")注解 @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 = #{uid}") int deleteUser(@Param("uid") int id); } 测试类 【注意:我们必须要讲接口注册绑定到我们的核心配置文件中!】 * 关于@Param() 注解** - 基本类型的参数或者String类型,需要加上 - 引用类型不需要加 - 如果只有一个基本类型的话,可以忽略,但是建议大家都加上! - 我们在SQL中引用的就是我们这里的 @Param() 中设定的属性名! #{} 和 ${} 区别 1. #是占位符, 会对SQL进行预编译,相当于?; $是做sql拼接, 有SQL注入的隐患 2. #不需要关注数据类型, MyBatis自动实现数据类型转换; ${} 必须自己判断数据类型 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjU4NDU0NQ_size_16_color_FFFFFF_t_70]: /images/20230601/1243ff93356241f09510d650668a74ee.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjU4NDU0NQ_size_16_color_FFFFFF_t_70 1]: /images/20230601/27a272294c0846eb84e1c7f856f4c390.png
还没有评论,来说两句吧...