select元素
- id: 命名空间中唯一的标识符
- parameterType:
基础数据类型:int/String/Date等,特点是只能传入一个,通过#{参数名}即可获取传入的值。
复杂数据类型:Java实体类/Map集合等,特点是可以传入多个参数,通过#{属性名}或#{map的KeyName}即可获取传入的值。
- resultType:直接表示返回类型
基本数据类型
- resultMap:对外部的resultMap的引用
复杂的联合查询,自由控制映射结果。
**注意:resultType和resultMap两者不能同时存在,本质上都是Map的数据结构!
(3)案例2:select元素的综合案例
1、数据表结构
2、在案例1的基础之上,在项目的entity包下新增Student实体类
3、在mapper包下新增StudentMapper.java接口
4、在mapper包下新增StudentMapper.xml文件
5、创建测试类Demo2,完成测试。
4、MyBatis注解的基本使用方法
(1)介绍
MyBatis的注解方式就是将sql语句直接写在接口上。这种方式的优点是,对于需求比较简单的系统,效率较高。缺点是,当sql有变化时需要重新编译代码,一般情况下不建议使用注解方式。
(2)@Select注解
以下案例使用了案例1中的UserMapper接口:
1、将UserMapper.xml文件中的select节点注释(id为getUserById)
2、在UserMapper.java接口中的getUserById方法上使用@Select注解
通过以上案例可以看出,在简单的sql操作中,使用注解无疑使程序变得更简单。
(3)@Select注解与@Results注解的联用
XML中的resultMap元素有一个对应Java的注解@Results,使用这个注解来实现属性映射。
以下案例使用了案例2中的StudentMapper.java接口
1、将StudentMapper.xml文件中的select节点和resultMap注释掉
2、在StudentMapper.java接口中添加@Select注解和@Results注解
3、在使用@Results注解的时候,大家可能会担心,是不是要在每一个方法上都 这么写。完全不需要,我们可以设置@Results注解的id属性,在其它方法中使用 @ResultMap注解引入既可
4、注意点:我们使用注解的方式将原本在StudentMapper.xml文件中的sql字句 转放到StudentMapper.java接口中,那么,我们在configuration.xml文件中 <mapper>节点的指向需要指向StudentMapper.java接口。
否则:将会抛出如下异常。
Type interface com.cmy.mapper.StudentMapper is not kNown to the MapperRegistry.
接口StudentMapper没有在MapperRegistry中注册!
Insert、@Delete、@Update注解的使用
以下代码均在案例1的基础之上完成。
1、注释掉UserMapper.xml中的insert、delete、update节点
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。