【2023.11.26】Mybatis注解学习

注解执行SQL语句

Mybatis的映射接口需要写在映射器xml的命名空间内。为了省略这一步,可以使用注解开发。

java 复制代码
    @Select("select * from artist where aID = #{a}")
    artist getArtistById(int a);

在接口的方法上加上注解@,注解中写明SQL语句即可省略映射器的SQL语句书写,不用写分号。

(注:此处若无法识别数据库的表,需要右键选择架构)

同时修改配置xml文件中的mapper标签:

XML 复制代码
<mapper class = "com.test.mapper.TestMapperInterface"/>
<!--    也可以直接注册整个包下的 <package name="com.test.mapper"/>   -->

将resource: 映射器直接改为class: 接口,若多个接口都在同一个包下,也可以使用**package:**包名


注解自定义映射规则

使用SqlSession中的方法或映射器中的SQL语句都只能完成简单的Sql操作。复杂的操作需要我们自定义映射规则**@Results**注解来解决。

java 复制代码
@Results({
        @Result(id = true, column = "sid", property = "sid"),
        @Result(column = "sex", property = "name"),
        @Result(column = "name", property = "sex")
})
@Select("select * from student")

@ConstructorArgs({
        @Arg(column = "sid", javaType = int.class),
        @Arg(column = "name", javaType = String.class)
})
@Select("select * from student where sid = #{sid} and sex = #{sex}")

相比于映射器里书写的自定义映射规则,不需要写resultMap的id与type

如果要使用映射器中定义的映射规则,可以使用**@ResultMap**(id)注解,填写映射规则id即可。

如果要用接口写多个构造方法,可以使用**@ConstructorArgs**注解。

若方法中含有多个形参,需要用**@Param**注解将参数名强调一遍,否则会报错。

java 复制代码
@Select("select * from artist where aID = #{a} and asex = #{b}")
artist getArtistById(@Param("a")int a, @Param("b")int b);
相关推荐
学长毕设14 分钟前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
释厄62337 分钟前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
zzu123zsw1 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
源码集结号2 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场3 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
啃瓜子的松鼠3 小时前
泛微OAe9-后端二开异步调用
java
秋天的怀念_David4 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放4 小时前
Python基础语法练习题(73)
java·前端·python
Wang's Blog4 小时前
Java 项目实战: 交友项目 - 环信后台发送消息测试
java·交友
用户3721574261354 小时前
Java 操作 Word 脚注和尾注:添加、读取与删除
java