Mybatis 强大的特性

Scroll Down

mybatis 配置

如果是在maven中配置mybatis,则需将下面的 dependency 代码置于 pom.xml 文件中:

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

从 XML 中构建 SqlSessionFactory

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。

从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。 但是也可以使用任意的输入流(InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,可使从 classpath 或其他位置加载资源文件更加容易。

String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

XML 配置文件中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager)。

XML 配置文件的详细内容后面再探讨,这里先给出一个简单的示例:


动态sql语句

当我们写sql时,对于 条件语句的 不确定时,之前会通过写多条类似的sql语句来调用命名不同的sql语句

Mybatis对此的解决方法有: where 和 if 的搭配使用

能大大 减少重复sql,更加灵活

<select id="getCountByPageInfo" parameterType="com.dabai.mytwo.entity.PageInfo">
        select count(*)
        from table_name
<where>
<if test="moduleName != 'To be assessed'">
   and state in
</if>
<if test="moduleName == 'To be assessed' or moduleName == 'Assess Pending'">
   and shipReplyStatus in
</if>
</where>
</select>