加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

3.mmmm

发布时间:2020-12-15 07:25:18 所属栏目:Java 来源:网络整理
导读:select 元素 id: 命名空间中唯一的标识符 ????? 接口中的方法与映射文件中的 SQL语句id一一对应 parameterType: ???????基础数据类型:int/String/Date等,特点是只能传入一个 ,通过 #{参数名}即可获取传入的值。 ??????? 复杂数据类型 :Java实体类/Map集合

select元素

  • id: 命名空间中唯一的标识符

????? 接口中的方法与映射文件中的SQL语句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,完成测试。

?

?

?

?

?

?

?

?

?

?

??4MyBatis注解的基本使用方法?

???1)介绍

???????MyBatis的注解方式就是将SQL语句直接写在接口上。这种方式的优点是,对于需求比较简单的系统,效率较高。缺点是,当SQL有变化时需要重新编译代码,一般情况下不建议使用注解方式。

??

???2@Select注解

??????????以下案例使用了案例1中的UserMapper接口:

?????????

1、UserMapper.xml文件中的select节点注释(id为getUserById)

?

2、UserMapper.java接口中的getUserById方法上使用@Select注解

?

?

???

?

?

?

?

?

3、运行Demo测试代码中的selectUser方法

?

?

?

?

??????????通过以上案例可以看出,在简单的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节点 ?

??????????2、将configuration.xml文件中mapper节点指向到UserMapper.java接口上。 ???

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读