關於使用tk.mybatis中寫自定義的mapper的問題
阿新 • • 發佈:2018-12-22
問題
使用tk.mybatis能滿足大多數操作,但是想新增自己的查詢方法時候今天遇到了坑,總結一下
官方教程
大致分兩種
1. 使用純介面註解方式時
在mapper介面中自定義方法上新增如@Select,@insert類似的註釋,裡邊寫相應的sql語句,如下
import org.apache.ibatis.annotations.Select; import tk.mybatis.mapper.common.Mapper; public interface CountryMapper extends Mapper<Country> { @Select("select * from country where countryname = #{countryname}") Country selectByCountryName(String countryname); }
這種方式沒有問題
2. 如果使用 XML 方式,需要提供介面對應的 XML 檔案
例如提供了 CountryMapper.xml 檔案,內容如下:
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="tk.mybatis.sample.mapper.CountryMapper"> <select id="selectByCountryName" resultType="tk.mybatis.model.Country"> select * from country where countryname = #{countryname} </select> </mapper>
這裡會有點問題
注意: resultType
如果對映的是個實體類最好寫 包的全路徑名
如tk.mybatis.model.Country
如果寫 Country
會報錯,導致專案無法啟動。