mybatis中@Mapper使用介紹

文采杰出發表於2024-07-24

在Java程式設計中,特別是在使用MyBatis或MyBatis-Plus這樣的ORM(物件關係對映)框架時,@Mapper是一個常見的註解,用於標記介面為MyBatis的Mapper介面。Mapper介面是MyBatis中用於運算元據庫的核心介面,它定義了與資料庫表互動的方法。

下面我將簡要介紹@Mapper註解的使用:

  1. 新增依賴: 首先,確保你的專案中已經包含了MyBatis或MyBatis-Plus的依賴。

  2. 定義Mapper介面: 建立一個Java介面,並使用@Mapper註解標記它。這個介面將定義與資料庫表互動的方法。

import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper {
    // 定義一個查詢方法
    User selectUserById(int id);

    // 定義一個插入方法
    int insertUser(User user);

    // 其他資料庫操作方法...
}

注意:在MyBatis-Plus中,你還可以繼承BaseMapper介面來快速擁有CRUD(增刪改查)操作的基本方法。

  1. 編寫Mapper XML檔案(可選): 雖然使用@Mapper註解後,你可以直接在介面上使用MyBatis的註解來定義SQL,但通常我們會選擇編寫Mapper XML檔案來組織SQL語句。Mapper XML檔案需要與Mapper介面在同一包下,並且檔名需要與Mapper介面名相同(除了副檔名.java改為.xml)。
<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
    <select id="selectUserById" resultType="com.example.model.User">
        SELECT * FROM user WHERE id = #{id}
    </select>

    <!-- 其他SQL語句... -->
</mapper>

如果你的專案使用了MyBatis-Plus,並且你繼承了BaseMapper,那麼大部分CRUD操作都不需要編寫XML檔案,因為MyBatis-Plus已經為你提供了預設的實現。

  1. 配置MyBatis: 在MyBatis的配置檔案(如mybatis-config.xml)或Spring Boot的配置檔案中,確保已經正確配置了Mapper介面的位置,以便MyBatis能夠掃描到它們。

在Spring Boot中,你可以使用@MapperScan註解來指定Mapper介面所在的包。

import org.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan("com.example.mapper") // 指定Mapper介面所在的包
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}
  1. 使用Mapper: 在需要的地方(如Service層),注入Mapper介面,然後呼叫其定義的方法來進行資料庫操作。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User getUserById(int id) {
        return userMapper.selectUserById(id);
    }

    // 其他業務邏輯...
}

透過以上步驟,你就可以在Java專案中使用@Mapper註解來定義和運算元據庫了。

相關文章