Mybatis实现DAO层------------自动实现dao接口

Posted 构建巨人肩膀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis实现DAO层------------自动实现dao接口相关的知识,希望对你有一定的参考价值。

1、新建一个注解用作dao扫描

/**
 * @author fuguangli
 * @description 前沿mybatis扫描注解,此注解用于org.mybatis.spring.mapper.MapperScannerConfigurer扫描
 * @Create date:    2017/7/12
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Component
public @interface MybatisRepository {
    String value() default "";
}

2、配置bean,启动spring的时候扫描@MybatisRepository

<!-- 扫描basePackage下所有以@MyBatisDao注解的接口 -->
    <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <property name="basePackage" value="com.qysxy"/>
        <property name="annotationClass" value="com.*****.annotation.MybatisRepository"/>
    </bean>

3、新建一个dao接口,并添加注解@MybatisRepository

/**
 * @author fuguangli
 * @description 
 * @Create date:    2017/3/14
 */
@MybatisRepository
public interface TestDao {

    List<TestData> findAllListed(TestData testData);
}

4、新建一个Mapper来实现dao接口

<?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.*****.TestDao">

    <sql id="columns">
    id,
    name
  </sql>
    <sql id="properties">
    #{id},
    #{name}
  </sql>
 <select id="findAllListed" resultMap="testDataResult" parameterType="TestData">
        SELECT *
        FROM test_test
        <where>
            <if test="id!=null and id!=0">
                and id=#{id}
            </if>
            <if test="name!=null and name!=‘‘">
               and name=#{name}
            </if>
        </where>
     </select>
</mapper>

6、测试

   @Autowired
    private TestDao testDao;

    @Test
    public void a1() {

        testDao.findAllListed(null);

    }

 

以上是关于Mybatis实现DAO层------------自动实现dao接口的主要内容,如果未能解决你的问题,请参考以下文章

mybatis之DAO层自动实现接口

Mybatis——Dao层实现映射文件深入核心配置文件深入

MyBatis基本应用:映射文件及Dao层实现

Mybatis -- MyBatis的Dao层实现(传统方式实现接口代理方式实现)

MyBatis——Dao层开发总结

MyBatis——Dao层开发总结