91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

喀什市| 永昌县| 东乡族自治县| 连城县| 荔浦县| 马龙县| 钟祥市| 陆丰市| 泰兴市| 赤水市| 阳谷县| 洛南县| 亳州市| 宣威市| 内丘县| 寿宁县| 思茅市| 同德县| 定州市| 万荣县| 诸城市| 平武县| 增城市| 博罗县| 罗山县| 孝感市| 闽侯县| 大石桥市| 饶河县| 桦甸市| 银川市| 礼泉县| 西平县| 沭阳县| 离岛区| 日土县| 微山县| 洱源县| 海伦市| 河源市| 新竹县|