(1)使用 bind 处理复杂表达式
<bind name="pattern" value="'%' + keyword + '%'"/>
<select id="selectUsersByKeyword" resultType="User">SELECT * FROM users WHERE username LIKE #{pattern}
</select>
bind 标签帮助我们在 SQL 中进行表达式计算,减少了 Java 中的拼接操作,使 SQL 更加简洁
(2)复用 SQL 片段
<sql id="baseUserColumns">id, username, age, email
</sql><select id="selectUsers" resultType="User">SELECT <include refid="baseUserColumns"/> FROM users
</select>
复用 SQL 片段能够提升代码的可维护性,避免了 SQL 语句的重复编写。
(3)多数据源支持
@Configuration
public class MyBatisConfig {@Beanpublic SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();factoryBean.setDataSource(dataSource);return factoryBean.getObject();}
}
多数据源支持让我们能够更好地管理不同的数据源,适用于微服务架构和复杂数据需求的场景