org.apache.ibatis.annotations不存在的問(wèn)題
org.apache.ibatis.annotations不存在
今天遇到了一個(gè)很有意思的bug。有人(還不止一個(gè)人)來(lái)問(wèn)我,為什么項(xiàng)目啟動(dòng)不了,我說(shuō)不可能啊,我這不跑得好好的嗎,而且成功啟動(dòng)的也不止我一個(gè)啊。然后他就說(shuō),不信你來(lái)看,我過(guò)去一看,果然如此:
這就很有意思了。是不是配置文件的問(wèn)題?我檢查了一下,似乎并沒(méi)有什么問(wèn)題,而且這代碼正在我本地跑著呢:
<!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency>
焦頭爛額了半天,我突然想到,是不是Maven版本的問(wèn)題?因?yàn)橹翱磿?shū)的時(shí)候,里面提到過(guò),不要使用IDE內(nèi)嵌的Maven,因?yàn)镮DE內(nèi)嵌的版本不一定一致,而版本不一致很容易導(dǎo)致構(gòu)建行為的不一致。一查,他用的是2017年的IDEA。而這個(gè)包的發(fā)布時(shí)間呢?2018年3月14日。
于是,我讓他更新一下版本,問(wèn)題解決。話說(shuō)寫(xiě)Maven配置的時(shí)候不在注釋里寫(xiě)版本真的沒(méi)問(wèn)題嗎……
bug解決:無(wú)法引入org.apache.ibatis.annotations.Select
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency>
@Select標(biāo)簽的方式搭建SpringBoot的Mybatis框架
xml搭建SpringBoot的Mybatis框架
package com.wl.course.dao; import com.wl.course.model.User; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; import java.util.List; /** * @Author: wl * @Description: * @DateTime: 2020/5/7 9:51 * @Params: * @Return */ public interface UserMapper { void deleteUser(Long id); @Select("select * from user where id = #{id}") @Results({ @Result(property = "username", column = "username"), @Result(property = "password", column = "password") }) User getUser(Long id); @Select("select * from user where id = #{id} and username=#{name}") User getUserByIdAndName(@Param("id") Long id, @Param("name") String username); @Select("select * from user") List<User> getAll(); // 使用xml方式 User getUserByName(String username); }
@RestController這個(gè)是ResponseBody和Controller的集合,意思是return的數(shù)據(jù)都變成json的格式,返回到前端,不會(huì)跳轉(zhuǎn)界面
如果想跳轉(zhuǎn)頁(yè)面的話,就需要把RestController改成Controller,就會(huì)跳轉(zhuǎn)頁(yè)面了。
@GetMapping("/getBlogger") public String getBlogger(Model model) { Blogger blogger = new Blogger(1L, "wl", "123456"); model.addAttribute("blogger", blogger); return "blogger"; }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
eclipse的web項(xiàng)目實(shí)現(xiàn)Javaweb購(gòu)物車(chē)的方法
這篇文章主要介紹了eclipse的web項(xiàng)目實(shí)現(xiàn)Javaweb購(gòu)物車(chē)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Java數(shù)組聲明、創(chuàng)建、初始化基礎(chǔ)
本文講述了Java數(shù)組的幾個(gè)相關(guān)的方面,講述了對(duì)Java數(shù)組的聲明、創(chuàng)建和初始化,并給出其對(duì)應(yīng)的代碼2012-12-12SpringBoot 多任務(wù)并行+線程池處理的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot 多任務(wù)并行+線程池處理的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04如何解決SpringBoot2.6及之后版本取消了循環(huán)依賴(lài)的支持問(wèn)題
循環(huán)依賴(lài)指的是兩個(gè)或者多個(gè)bean之間相互依賴(lài),形成一個(gè)閉環(huán),SpringBoot從2.6.0開(kāi)始默認(rèn)不允許出現(xiàn)Bean循環(huán)引用,解決方案包括在全局配置文件設(shè)置允許循環(huán)引用存在、在SpringApplicationBuilder添加設(shè)置允許循環(huán)引用、構(gòu)造器注入2024-10-10Springboot校驗(yàn)工具類(lèi)詳細(xì)代碼示例
這篇文章主要給大家介紹了關(guān)于Springboot校驗(yàn)工具類(lèi)的相關(guān)資料,工具類(lèi)里面主要是封裝了一些常用字段驗(yàn)證方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02Spring Web零xml配置原理以及父子容器關(guān)系詳解
這篇文章主要介紹了Spring Web零xml配置原理以及父子容器關(guān)系詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08基于idea 的 Java中的get/set方法之優(yōu)雅的寫(xiě)法
這篇文章主要介紹了基于idea 的 Java中的get/set方法之優(yōu)雅的寫(xiě)法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01解決JavaEE開(kāi)發(fā)中字符編碼出現(xiàn)亂碼的問(wèn)題
下面小編就為大家?guī)?lái)一篇解決JavaEE開(kāi)發(fā)中字符編碼出現(xiàn)亂碼的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07