Mybatis从入门到精通——sql标签(9)

一、sql标签作用

该标签是用来定义一些可复用的sql语句,需要在使用该复用sql语句的地方通过include标签引用。

 

二、案例

进行一条sql的查询,通过复用sql标签完成。

映射文件:

    <resultMap id="BaseResult" type="com.my.entity.Person">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="sex" property="sex"/>
        <result column="telephone" property="telephone"/>
        <result column="address" property="address"/>
        <result column="age" property="age"/>
    </resultMap>

    <!--  sql标签  -->
    <sql id="Base_Column">
        id,name,sex,telephone,address,age
    </sql>

    <select id="selectById" parameterType="Integer" resultMap="BaseResult">
        select
        <include refid="Base_Column" />
        from person
        where id = #{id}
    </select>

说明:对于sql标签的复用,直接通过include标签,然后refid指向要复用的sql标签即可。

测试类:

    private SqlSessionFactory sqlSessionFactory;

    @Before
    public void init() throws IOException {
        String resource = "mybatis-config.xml";
        //1.使用mybatis的工具读取配置文件
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //2.创建sqlSessionFactory
        sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        inputStream.close();
    }


    /**
     * 测试sql标签
     */
    @Test
    public void testSql() {
        //3.获取sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //4.获取mapper接口实现类
        PersonMapper personMapper = sqlSession.getMapper(PersonMapper.class);
        //5.调用方法
        Person person = personMapper.selectById(1);
        System.out.println(person);
        //6.释放资源
        sqlSession.close();
    }

说明:正常输出结果。

三、补充说明

1.sql标签一般用来复用字段名

2.sql标签可以复用另外一个sql标签,也是通过在该sql标签内使用include标签进行复用另外的sql标签

3.sql标签中还能添加动态标签

发布了61 篇原创文章 · 获赞 81 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/m0_37914588/article/details/104736363