[SSM]自動(dòng)生成mybatis代碼

原連接:不識(shí)別主鍵
在使用網(wǎng)上教程生成mybatis自動(dòng)代碼的時(shí)候,配置結(jié)束,但是生成的dao接口只有insert的兩個(gè)方法,沒(méi)有其他方法,于是去百度,不得不多百度真的爛,得出的結(jié)論就是可能沒(méi)有在mysql表中沒(méi)有主鍵
那么就去數(shù)據(jù)庫(kù)中查看到底有沒(méi)有設(shè)置主鍵,然后看了一大堆設(shè)置主鍵的教程,還是不行,然后再去百度上面的問(wèn)題,清一色的博客全是那不變的三個(gè)方案,然后偶然想到,既然有主鍵,那是否可能是不能識(shí)別主鍵,然后去百度,得到了答案。
錯(cuò)誤場(chǎng)景描述:

在使用mybatis-Generator生成xml時(shí),不生成Example,在<table>標(biāo)簽中添加enableCountByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
enableUpdateByExample="false"

在生成xml文件時(shí),應(yīng)該有insert、insertSelective、selectByPrimaryKey、updateByPrimaryKeySelective、updateByPrimaryKey、deleteByPrimaryKey等方法,但是在生成的xml文件中只有insert、insertSelective。后來(lái)看xml文件中的resultMap節(jié)點(diǎn)里主鍵id使用的是result標(biāo)簽,而不是id標(biāo)簽??赡苁侵麈I沒(méi)有被識(shí)別
后來(lái)在節(jié)點(diǎn)jdbcConnection里配置useInformationSchema屬性,解決了不識(shí)別主鍵問(wèn)題

<!--配置數(shù)據(jù)庫(kù)-->
<jdbcConnection driverClass="${driver}"
                connectionURL="${url}"
                userId="${username}"
                password="${password}">
    <!--設(shè)置可以獲取tables remarks信息-->
    <property name="useInformationSchema" value="true"/>
    <!--設(shè)置可以獲取remarks信息-->
    <property name="remarks" value="true"/>
</jdbcConnection>

還有一種情況是節(jié)點(diǎn)jdbcConnection里配置useInformationSchema屬性已存在,但是還是只有insert、insertSelective方法,這種情況可能會(huì)是mysql驅(qū)動(dòng)版本比較低導(dǎo)致的,可以升級(jí)一下mysql驅(qū)動(dòng)版本

2 另一個(gè)坑就是我在設(shè)置了user作為表名的時(shí)候,發(fā)現(xiàn)自動(dòng)生成的代碼突然多了兩個(gè)主鍵,host user,查找一番,發(fā)現(xiàn)下面有警告信息,user表在不同數(shù)據(jù)庫(kù)中存在,那么是否是這個(gè)原因,修改了數(shù)據(jù)表名稱(chēng)之后,果然正常,應(yīng)該是在mysql中存在user數(shù)據(jù)表來(lái)保存連接用戶(hù),導(dǎo)致出現(xiàn)了多個(gè)主鍵。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容