优秀的编程知识分享平台

网站首页 > 技术文章 正文

「MyBatis学习笔记五」——MyBatis注解的简单使用

nanyue 2024-07-31 12:01:32 技术文章 9 ℃

1.简单注解介绍

@Insert : 插入sql , 和xml insert sql语法完全一样
@Select : 查询sql, 和xml select sql语法完全一样
@Update : 更新sql, 和xml update sql语法完全一样
@Delete : 删除sql, 和xml delete sql语法完全一样

2.使用注解实现crud

@Select("select * from mybatis.user")
List<User> getAll();

@Select("select * from mybatis.user where id = #{id}")
User getOneById(@Param("id") int id);

@Insert("insert into mybatis.user (username,password) values (#{username},#{password})")
int add(User user);

@Update("update mybatis.user set username = #{username},password = #{password} where id = #{id}")
int update(User user);

@Delete("delete from mybatis.user where id = #{id}")
int deleteOneById(@Param("id") int id);

@Select("select * from mybatis.user limit #{page} , #{pageSize}")
List<User> getBySql(Map<String,Object> data);

3.将包内的映射器接口实现全部注册为映射器

<mappers>
  <!--<mapper resource="mapper/UserMapper.xml"/>-->
  <!-- 将包内的映射器接口实现全部注册为映射器 -->
  <package name="com.demo.mapper"></package>
</mappers>

4.#和$区别:

  • 都是对参数进行标记的符号
  • #是预编译,防止sql注入
  • $ 相当于一个占位符,不能防止sql注入

5.xml和注解的关系

  • xml必须有个一个XxxMapper.xml与之对应,方法名对应xml中的id,方法入参和方法出参都必须对应起来,很容易出问题。
  • 不需要XxxMapper.xml文件,只需要在对应XxxMapper.java中的方法上加上注解就搞定了,但是这里是有坑的。毕竟把sql放到了我们的Java代码里了。
  • 优缺点

(1)xml方式: 增加了xml文件,修改麻烦,条件不确定(ifelse判断),容易出错,特殊转义字符比如大于小于 。

(2)注解方式:复杂sql不好用,搜集sql不方便,管理不方便,修改需重新编译

6.demo地址

  • https://download.csdn.net/download/weixin_43817709/19245499
最近发表
标签列表