Mybatis注解sql時(shí)出現(xiàn)的一個(gè)錯(cuò)誤及解決
一. 錯(cuò)誤
在做Mybatis用注解方式來(lái)注入sql的練習(xí)時(shí),報(bào)了這樣子的錯(cuò)誤。
遇到錯(cuò)誤很正常,然后我又從學(xué)了一遍今天剛剛學(xué)的內(nèi)容,溫故而知新嘛。
錯(cuò)誤問(wèn)題如下:
二. 文件結(jié)構(gòu)
BookMapper.java
public interface BookMapper { @SelectProvider(type = BookMapperSQL.class,method = "bookSelectById") Book bookSelectById(int id); }
BookMapperSQL .java
public class BookMapperSQL { public String bookSelectById(final int id){ return new SQL(). SELECT("*") .FROM("t_user") .WHERE("id=#{id}").toString(); } }
然后我把BookMapper.xml的內(nèi)容都刪完了,沒有把文件刪掉,目錄如下:
Mybatis的配置文件
這個(gè)映射用包用類其實(shí)都沒有影響,因?yàn)槲覀冏龅氖亲⒔馀渲?/p>
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="Dd.properties"/> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> <typeAliases> <package name="org.example.po"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${db.driver}"/> <property name="url" value="${db.url}"/> <property name="username" value="${db.username}"/> <property name="password" value="${db.password}"/> </dataSource> </environment> </environments> <mappers> <!-- <mapper class="org.example.mapper.BookMapper"/>--> <package name="org.example.mapper"/> </mappers> </configuration>
三. 分析
從上面的文件看,我的問(wèn)題很大部分原因應(yīng)該在這個(gè)mapper的包里面。然后就是看參數(shù)有沒有個(gè)數(shù)對(duì)齊,但是也不會(huì)導(dǎo)致這樣的錯(cuò)誤說(shuō)是錯(cuò)誤解析SQL Mapper配置,所以這個(gè)問(wèn)題我一開始糾結(jié)于那個(gè)BookMapperSQL .java的內(nèi)容是不是寫錯(cuò)了,研究了一個(gè)多小時(shí),直接重學(xué)了一遍,哭了。
后來(lái)我在想,會(huì)不會(huì)是因?yàn)槲夷玫氖俏抑白龅淖鳂I(yè)修改的而出現(xiàn)的問(wèn)題。然后我就看了我之前的文件目錄
我突然想起之前做這個(gè)動(dòng)態(tài)代理方式實(shí)現(xiàn)的方式時(shí),pom.xml文件做了配置,指定了mapper包中。
難道就是因?yàn)橹付宋恢?,文件加載所以出問(wèn)題了嗎?所以我就把這段代碼注釋掉
然后它就運(yùn)行成功了。
當(dāng)熱,我們?cè)谑褂米⒔夥绞阶⑷雜ql時(shí),mapper包中沒必要再加這個(gè)文件了,只能說(shuō)是自己愚鈍了,上網(wǎng)查都沒有人像我一樣這么烏龍了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java利用正則表達(dá)式處理特殊字符的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于java利用正則表達(dá)式處理特殊字符的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12spring如何集成cxf實(shí)現(xiàn)webservice接口功能詳解
這篇文章主要給大家介紹了關(guān)于spring如何集成cxf實(shí)現(xiàn)webservice接口功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家 的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-07-07SpringBoot快速整合SpringSecurity的詳細(xì)步驟(新手都會(huì)!)
日 Spring Security 是針對(duì)Spring項(xiàng)目的安全框架,也是Spring Boot底層安全模塊默認(rèn)的技術(shù)選型,他可以實(shí)現(xiàn)強(qiáng)大的Web安全控制,下面這篇文章主要給大家介紹了關(guān)于SpringBoot快速整合SpringSecurity的詳細(xì)步驟,需要的朋友可以參考下2023-03-03Jackson中json格式的字符串與對(duì)象的互相轉(zhuǎn)換方式
這篇文章主要介紹了Jackson中json格式的字符串與對(duì)象的互相轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Java基于jeeplus vue實(shí)現(xiàn)簡(jiǎn)單工作流過(guò)程圖解
這篇文章主要介紹了Java基于jeeplus vue實(shí)現(xiàn)簡(jiǎn)單工作流過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04