導航:首頁 > APP軟體 > mapper配置文件

mapper配置文件

發布時間:2024-10-16 02:13:25

① mybatis報Mapper配置文件出錯

最近學習mybatis框架時,遇到一坑,記錄一下debug過程。

操作表一對一查詢時,運行junit測試類時報錯如下:

根據錯誤提示,第一時間檢查了mapper的xml文件名稱以及對應的包名是否跟介面類的一致,確認沒有問題後,初步判定原因是 mapper映射文件問題 ,mapper內容如下:

隨後檢查mapper文件中返回類型以及實判升體類屬性、數據表對掘尺老應欄位,發現應該是由於resultMap定義的返回類型有問題,於是檢查mybatis主配困譽置文件

果不其然,調試後明確問題:
由於主配置文件只配置了<mappers>標簽下的<package>指定了介面所在包, 沒有配置<typeAliases>下的<package>指定實體類的別名,因此mapper文件中返回的實體類名稱不能使用簡寫,需要寫完整全限定類名

主配置文件指定實體類別名後測試,測試類正常返回一對一查詢的數據

② MyBatis 的mapper.xml配置的問題

我們知道在Mybatis中定義Mapper信息有兩種方式,一種是利用xml寫一個對應的包含Mapper信息的配置文件;另一種就是定義一個Mapper介面,然後定義一些相應的操作方法,再輔以相應的操作註解。
現假設我有這樣一個實體類:
Java代碼 收藏代碼
package com.tiantian.mybatis.model;

public class User {

private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

}

它對應的資料庫表結構是這樣的:

然後我要利用Mybatis對它做一個簡單的增刪改查操作,那麼如果利用xml配置Mapper的方式來定義的話,我對應的UserMapper.xml文件會是這樣:
Xml代碼 收藏代碼
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.tiantian.mybatis.mapper.UserMapper">
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyColumn="id">
insert into t_user(name, age) values(#{name}, #{age})
</insert>

<update id="updateUser" parameterType="User">
update t_user set name=#{name}, age=#{age} where id=#{id}
</update>

<select id="findById" parameterType="int" resultType="User">
select * from t_user where id=#{id}
</select>

<delete id="deleteUser" parameterType="int">
delete from t_user where id=#{id}
</delete>
</mapper>

如果使用介面加註解的方式,那麼我們的UserMapper介面應該這樣定義:
Java代碼 收藏代碼
package com.tiantian.mybatis.mapperinterface;

import org.apache.ibatis.annotations.Delete;
import or www.hbbz08.com g.apac he.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.tiantian.mybatis.model.User;

public interface UserMapper {

@Insert("insert into t_user(name, age) values(#{name}, #{age})")
public void insertUser(User user);

@Update("update t_user set name=#{name}, age=#{age} where id=#{id}")
public void updateUser(User user);

@Select("select * from t_user where id=#{id}")
public User findById(int id);

@Delete("delete from t_user where id=#{id}")
public void deleteUser(int id);

}

注意看這里我故意把UserMapper介面的namespace也就是它的包名置為與UserMapper.xml的namespace屬性不一樣。這主要是為了要更好的講以下的內容。
接下來要做的就是把Mapper信息注冊到Mybatis的配置中,告訴Mybatis我們定義了哪些Mapper信息。這主要是在Mybatis的配置文件中通過mappers元素來進行的。在以前版本的Mybatis中我們在Mybatis的配置文件中需要這樣定義Mapper信息資源的位置。
Xml代碼 收藏代碼
<mappers>
<mapper resource="com/tiantian/mybatis/mapper/UserMapper1.xml"/>
<mapper url="file:///E:/UserMapper.xml"/>
</mappers>

這主要是通過mapper元素的resource和url屬性來指定的,resource屬性指定的是相對於跟類路徑下的資源,url屬性指定的是通過URL可以獲取到的資源。這有一點不好的地方,當我們使用Mapper介面加註解來定義當前Mapper的操作信息時,我們還需要定義一個與它對應的Mapper.xml文件。如:
Xml代碼 收藏代碼
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tiantian.mybatis.mapperinterface.UserMapper">

</mapper>

③ SpringBoot整合MyBatis---一篇就夠了

SpringBoot整合MyBatis教程,簡明扼要

對於已經熟悉SpringBoot基礎的開發者,整合MyBatis將使你的項目在數據操作上更加靈活與高效。

MyBatis是一個強大的半自動ORM框架,相較於Hibernate,它更易於上手且能提供更直接的數據操作控制。

在本教程中,我們將演示如何在SpringBoot項目中整合MyBatis,包括引入相關依賴,配置mapper文件、application文件,以及實現CRUD操作。

如果對於SpringBoot或MyBatis初學者,建議先進行基本了解,再深入閱讀本教程。

項目框架中,使用Maven管理依賴,確保引入MyBatis和SpringBoot整合所需的組件。

創建mapper配置文件UserMapper.xml,確保其路徑與介面完全一致,實現數據操作的抽象。

在application.properties或application.yml中配置MyBatis相關參數,如數據源信息等,兩者選擇其一。

實現controller層,處理用戶登錄、CRUD操作等邏輯,通過控制器與前端進行交互。

前端方面,將index.html文件放置於template文件夾下,用於展示數據或接收用戶交互。

測試功能包括登錄操作與CRUD(增刪改查)功能,確保數據操作的正確性。

使用注意事項包括路徑配置、參數配置等細節,確保框架與項目環境的兼容性。

為提高開發效率,推薦使用IDEA插件MyBatisX,能自動在mapper.xml中生成CRUD方法。

MyBatis框架的優勢包括簡化SQL編寫、動態SQL支持、靈活的數據映射等,而缺點可能涉及學習曲線、SQL拼接安全等。

在整合SpringBoot與MyBatis過程中,可能會遇到各種錯誤,如無參構造方法缺失、時區設置不當、依賴注入沖突等問題。

解決方法包括添加無參構造方法、調整時區配置、使用@Autowired註解並設置正確屬性等,以確保框架兼容與功能實現。

通過本教程,希望能幫助開發者快速掌握SpringBoot與MyBatis的整合技巧,提高項目開發效率。

持續學習,每天進步「億」點點。

閱讀全文

與mapper配置文件相關的資料

熱點內容
win10電腦怎麼休眠不斷網 瀏覽:530
如何查到網站的伺服器 瀏覽:225
編程怎麼確定一個數的位數 瀏覽:362
如何安裝ae腳本文件夾 瀏覽:914
商品驗偽用什麼APP查 瀏覽:350
請問大數據與會計專業做什麼的 瀏覽:77
如何修改數據上年結轉 瀏覽:6
win7一直配置文件重啟 瀏覽:124
佳能ir2525i網路掃描 瀏覽:283
win10指紋無法識別 瀏覽:646
jsp中怎麼引入js文件 瀏覽:925
文件名構成部分 瀏覽:484
興國互聯網app有哪些 瀏覽:475
北京時間票房多少票房統計數據 瀏覽:750
探探文件夾是哪個 瀏覽:429
如何分類微信文件 瀏覽:446
城市天際線win10 瀏覽:813
運動APP跑步如何抓作弊 瀏覽:57
微信中秋節動態祝福語 瀏覽:703
練英語的網站哪個好 瀏覽:894

友情鏈接