【mybatis】02-spring集成&扩展

POM配置

<dependency>
    <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.5.6</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.6</version>
 </dependency>

web.xml中指定的spring配置

<context:component-scan base-package="com.smart.daoMybatis"/>
    <context:property-placeholder location="classpath:jdbc.properties"/>

    <bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close"
        p:driverClassName="${jdbc.driverClassName}"
        p:url="${jdbc.url}"
        p:username="${jdbc.username}"
        p:password="${jdbc.password}" />

    <!-- Mybatis config -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- 指定mapper.xml配置文件 -->
        <property name="mapperLocations" value="classpath:mybatis/BoardMapper.xml" />
    </bean>

java实现:

@Repository
public class BoardMybatisDao extends BaseMybatisDao<User> {

    @Autowired
    SqlSessionFactory sqlSessionFactory;

    public List<Board> getAllBoards()
    {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        List<Board> allBoards = sqlSession.getMapper(BoardMapper.class).getAllBoards();

        return allBoards;
    }
}

 

开发经验:IDEA安装Free mybatis plugin插件后 

1、自动对Mapper.java和Mapper.xml进行跳转关联

 

 

 

 2、只在mapper.java定义函数,通过alt+enter生成xml的mapper语句

进一步选择SQL语句

 


 

提供给业务的扩展能力:

Interceptor 拦截器

拦截器可以拦截ParameterHandler、ResultSetHandler、StatementHandler、Executor的执行,我们可以实现:

1、分页插件;

2、Sql语句分析,可以防止全表更新、删除语句执行;

3、字段加密、解密;

4、dao执行耗时统计埋点、慢sql分析上报;

5、动态数据源切换;

等等各种场景

public interface Interceptor {
    Object intercept(Invocation var1) throws Throwable;

    default Object plugin(Object target) {
        return Plugin.wrap(target, this);
    }

    default void setProperties(Properties properties) {
    }
}

 

posted @ 2021-05-19 19:45  飞翔在天  阅读(73)  评论(0编辑  收藏  举报