spring+mybatis3套路训练2 把注解方式改成xml映射方式,二者混用的姿势

这节课把我们上节课注解方式配合类文件实现用户增删改查api改成xml映射的方式

image.png

上节课我们在UserMapper中写入了sql语句 如果sql是简单的一两句 使用注解的方式没什么问题 而且比较方便 但是上节课的动态SQL构建起来却不是很方便 如果此时把代码写在xml映射文件里面就更加方便
接下来我们顺着这个思路往下学习
首先我们来看下如何把我们之前的注解改成扫描配置
因为我们上节课在spring配置文件中加入了MapperFactoryBean配置 并且把我们创建的UserMapper接口放入了mapperInterface里面
如下
image.png

这时如果我们在来一个别的接口(mapper文件) 我们还要在spring中进行关联
如果有多个接口 这样做是不现实的
因此接下来我们首先注释掉spring中这部分配置内容 改用其他方式进行关联
注释内容如下
image.png

官方告诉我们有一种扫描的方式自动会帮助我们扫描到我们所有的mapper
接下来我们看下官方文档http://www.mybatis.org/spring/zh/mappers.html(注入映射器)
可以看见官方有这样一段内容
image.png

可以使用MapperScannerConfigurer扫描到所有mappers
下面演示下
在spring配置文件中加入如下
image.png

接下来在mappers包下面创建个NewsMapper
目录如下
image.png

然后我们创建一张新闻表jt_news
内容如下
image.png

然后这节课用到我们之前创建的实体类NewsInfo
在里面定义一个私有属性newsid 使其和数据库表中字段对应
image.png

接下来来到NewsMapper
首先获取新闻列表
代码如下
image.png

由于我们在spring配置文件中加入了扫描mapper的配置 这样在mappers下面有多个文件都可以扫描到
但是官方还告诉我们要配置下sqlSessionFactoryBeanName
官方说明如下
image.png

由于我们之前配置了sqlSessionFactory
image.png

需要加入如下属性
image.png

接下来我们改下NewsController代码
代码如下
image.png

自动注入代码如下
image.png

可以看见我们的自动注入newsMapper报红了 我们过会再解决这个问题
写好代码后 我们编译发布下代码 测试下我们spring中配置文件是否起到作用(是否能自动扫描mappers包下面的所有文件)
浏览器访问localhost:8080/users
image.png

浏览器访问localhost:8080/users/3
image.png

可以发现我们之前的用户api是好用的
接下来测试新加入的新闻api
浏览器访问localhost:8080/news
image.png

也是好用的 说明我们的spring配置起到了作用 能够帮助我们扫描 自动的将我们mappers包下面的类加载进去
下面我们解决下自动注入newMapper报红的信息
image.png

这时可以在我们的NewsMapper中打入注解@Repository
如下
image.png

在看我们newsController中自动注入部分红色消失了 如下
image.png

同理也要在我们UserMapper中打入@Repository注解 否则也会报红
打入了这个注解 编辑器就会认识 便可以自动注入了
接下来看下如何将上节课学的注解的形式改成xml配置文件的形式
image.png

首先在资源文件夹下创建一个mappers文件夹 在里面创建个NewsMapper.xml文件
目录如下
image.png

根据官网可知 这个xml文件里的命名空间需要根据官方文档格式写 不能随便写
官方说明如下
将命名空间内容直接拷贝到newsmapper.xml中
代码如下
image.png

其中的namespace需要映射到我们的接口文件(里面填写对应的接口文件名也就是映射类) 里面写入sql语句 由于我们在配置文件中写入了sql语句 所以在接口中就可以把sql注解注释掉了
NewsMapper中注释如下
image.png

代表其内部的配置(就是sql语句)是映射到我们哪一个接口文件中的 而id是对应我们接口里面的方法名(映射到我们的接口里的getNews方法)
resultType如果返回的是一个集合(List)类型 官方明确告诉我们 里面要填入对应的集合实体类
配置好了之后 还需要加入下面的配置
需要告诉我们的sqlSessionFactory我们的xml文件在哪 否则不会进行映射
image.png

所以在我们的spring配置文件中加入如下
之前我们配置好了sqlSessionFactory 接下来为其加入属性
image.png

这样写编译后会放到我们的target目录下 因为我们配置的路径是classpath下的
配置好后我们重新编译运行项目
浏览器访问localhost:8080/news
结果如下
image.png

我们已经把NewsMapper中@Select注解去掉了
从结果可以看出我们配置文件生效了 正常的显示我们的新闻列表了(说明我们是以xml方式获取的)
同时我们也可以把xml方式和注解的方式混用
如果sql语句比较复杂可以放在xml配置文件中 如果sql很简单 可以直接放在接口中以注解方式实现
接下来看下二者混用方式
在NewsMapper中获取新闻详细
代码如下
image.png

采用注解的方式 获取新闻详细
然后来到NewsController中修改如下
image.png

发布编译下代码
首先浏览器访问localhost:8080/news 访问新闻列表
image.png

可以看见依然是可以访问的
接下来访问新闻详细(传入新闻id)
localhost:8080/news/4
image.png

以上就是我们采用注解和xml的方式来完成我们的api功能 更多内容到官方文档详细阅读

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355