中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MyBatis Spring Boot集成后的數據訪問層代碼重構案例

發布時間:2024-09-11 19:50:47 來源:億速云 閱讀:86 作者:小樊 欄目:編程語言

在使用MyBatis和Spring Boot進行項目開發時,我們通常會遇到一些重復的代碼,例如數據訪問層(DAO)的接口和實現。為了提高代碼的可維護性和可讀性,我們可以對這些代碼進行重構。下面是一個簡單的數據訪問層代碼重構案例:

  1. 首先,創建一個通用的Mapper接口,例如BaseMapper
public interface BaseMapper<T> {
    T findById(Long id);
    List<T> findAll();
    int insert(T entity);
    int update(T entity);
    int deleteById(Long id);
}
  1. 然后,創建一個通用的MyBatis映射文件BaseMapper.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.example.demo.mapper.BaseMapper">
   <select id="findById" resultType="T">
        SELECT * FROM ${tableName} WHERE id = #{id}
    </select>
   <select id="findAll" resultType="T">
        SELECT * FROM ${tableName}
    </select>
   <insert id="insert" parameterType="T">
        INSERT INTO ${tableName} (...) VALUES (...)
    </insert>
   <update id="update" parameterType="T">
        UPDATE ${tableName} SET ... WHERE id = #{id}
    </update>
   <delete id="deleteById">
        DELETE FROM ${tableName} WHERE id = #{id}
    </delete>
</mapper>

注意:在這個映射文件中,我們使用了${tableName}作為動態表名,這樣我們就可以在不同的實體類中使用相同的SQL語句。

  1. 接下來,為每個實體類創建一個Mapper接口,并繼承BaseMapper
public interface UserMapper extends BaseMapper<User> {
}
  1. application.propertiesapplication.yml中配置MyBatis的掃描路徑:
mybatis.mapper-locations=classpath:mapper/*.xml
  1. 最后,在Service層或Controller層調用Mapper接口的方法進行數據訪問:
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User findById(Long id) {
        return userMapper.findById(id);
    }

    public List<User> findAll() {
        return userMapper.findAll();
    }

    public int insert(User user) {
        return userMapper.insert(user);
    }

    public int update(User user) {
        return userMapper.update(user);
    }

    public int deleteById(Long id) {
        return userMapper.deleteById(id);
    }
}

通過這種方式,我們可以將重復的數據訪問層代碼抽象出來,提高代碼的可維護性和可讀性。當然,這只是一個簡單的示例,實際項目中可能需要根據具體需求進行更多的定制化開發。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

时尚| 黄石市| 台前县| 鹤岗市| 鞍山市| 姚安县| 称多县| 温宿县| 云林县| 北川| 谢通门县| 清水县| 桂平市| 乡城县| 蒙阴县| 庆安县| 新源县| 嘉兴市| 台东县| 苏尼特左旗| 青海省| 吴川市| 三明市| 格尔木市| 长治市| 新竹县| 梨树县| 洛阳市| 九江市| 那曲县| 西藏| 北辰区| 沙田区| 台州市| 北票市| 林州市| 上杭县| 高尔夫| 深泽县| 通河县| 南平市|