MyBatis技术总结

什么是MyBatis?

MyBatis是半自动化的持久化层框架(SQL映射框架)它的功能是为了操作数据库,MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。

MyBatis中的主要组成部分

Resources类:用来将主配置文件读取出来进行包装成字节流。传给SqlSessionFactoryBuilder。

SqlSessionFactoryBuilder:将读取的配置文件使用本类的.build()方法创建出一个SqlSessionFactory。

SqlSessionFactory:每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。

SqlSessionFactory创建代码示例:

publicclassMybatisUtils{

    privatestaticSqlSessionFactorysqlSessionFactory;

    static{

        try{

            Stringresource="mybatis-config.xml";

        InputStreamin=Resources.getResourceAsStream(resource);

            sqlSessionFactory=newSqlSessionFactoryBuilder().build(in);

        }catch(IOExceptione) {

            e.printStackTrace();

        }     

    } 

}

SqlSession:使用SqlSessionFactory的openSession()方法来创建SqlSession对象,对于Mybatis来讲,这么多类中,最重要的其实SqlSession。SqlSession对应着一次数据库会话。由于数据库会话不是永久的,因此SqlSession的生命周期也不应该是永久的,相反,在你每次访问数据库时都需要创建它(当然并不是说在SqlSession里只能执行一次sql,你可以执行多次,当一旦关闭了SqlSession就需要重新创建它)。

SqlSession创建代码示例:

publicstaticSqlSessionopenSession() {

        returnsqlSessionFactory.openSession();

    }

MyBatis配置

设置(settings)

主要作用:settings标签中包含了对 MyBatis框架系统的运行规则设置,例如要开启MyBatis的日志功能,则就需要在settings中设置开启日志的规则。

设置(settings)代码示例:

<!-- MyBatis框架运行规则配置 -->

    <settings>

        <!-- 开启日志 -->

        <settingname="logImpl"value="STDOUT_LOGGING"/>

    </settings>

类型别名(typeAliases)

主要作用:用来给实体类设置别名(可以不用设置resultMap来设置)

类型别名(typeAliases)代码示例:

<typeAliases>

    <!--  给每一个实体类设置别名  -->

    <typeAliastype="com.apesource.entity.Employee"alias="Employee"/>

    <typeAliastype="com.apesource.entity.EmployeeParam"alias="EmployeeParam"/>

    <!--  给指定包下的所有实体类设置别名  -->

    <packagename="com.apesource.entity"/>

</typeAliases>

环境配置(environments)

主要作用:environment 元素体中包含了事务管理和连接池的配置

环境配置(environments)代码示例:

<!-- 环境列表 -->

    <!-- default:设置当前使用的环境environment id -->

    <environmentsdefault="development">

        <!-- 环境1(开发) -->

        <environmentid="development">

            <!-- 事务管理器:采用JDBC事务 -->

            <transactionManagertype="JDBC"/>         

            <!-- 数据源(数据库连接池) -->

            <!-- type设置为pooled,启动数据库连接池 -->

            <dataSourcetype="POOLED">

                <!-- 数据库连接参数 -->

                <propertyname="driver"value="${driver_class}"/>

                <propertyname="url"value="${jdbc_url}"/>

                <propertyname="username"value="${db_username}"/>

                <propertyname="password"value="${db_password}"/>

            </dataSource>

        </environment>

    </environments>

映射器(mappers)

主要作用: mappers 元素则包含了一组映射器(mapper),这些映射器的 XML 映射文件包含了 SQL 代码和映射定义信息

映射器(mappers)代码示例:

<!-- 映射器列表 -->

    <mappers>

        <!-- SQL映射文件 -->

        <mapperresource="com/apesource/dao/mapper/EmployeeMapper.xml"/>

        <mapperresource="com/apesource/dao/mapper/OrderMapper.xml"/>

    </mappers>

MyBatis XML 映射器

1.常用节点作用总结

select :select标签对应的sql语句也是相同的select语句,其作用是用来查询数据库中的数据

update:update标签的作用是用来更新数据库中指定的数据

delete:delete标签的作用是用来删除数据库中指定的数据

insert:insert标签的作用是用来添加数据库中对应表下字段的数据

2.常用属性作用总结

id 属性:对应的映射文件Mapper接口下的操作的方法名

resultType 属性:执行这个操作后返回结果的类型,对应Mapper映射接口下的方法返回值

parameterType 属性:执行操作时候需要传入的参数的类型,Mapper映射接口下的方法传入的参数类型

useGeneratedKeys属性:对于执行添加数据操作,添加完成后需要返回的主键编号,需要将其设置为true才能接收其返回的主键值

keyProperty属性:与useGenerratedKeys属性配合使用,设置返回的主键值是对应类下的哪一个属性名

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容