美文网首页mybatisMybatis
mybatis-3.4.6 配置介绍

mybatis-3.4.6 配置介绍

作者: 晴天哥_王志 | 来源:发表于2020-07-19 20:46 被阅读0次

系列

开篇

  • 这个系列是基于mybatis-3.4.6版本的源码解析,由于日常的mybatis都是和spring工程进行集成,但是本质都是通过spring-mybatis来进行桥接的。
  • 整体系列的分析顺序按照先分析mybatis后分析spring-mybatis来进行。
  • 这篇文章主要是分析mybatis的非spring模式下的基本用法,基于该基础用法进行源码分析。

mybatis配置

MyBatis 的配置文件,参考configuration。 配置文档的顶层结构如下:

  • configuration(配置)
  • properties(属性)
  • settings(设置)
  • typeAliases(类型别名)
  • typeHandlers(类型处理器)
  • objectFactory(对象工厂)
  • plugins(插件)
  • environments(环境配置)
  • environment(环境变量)
  • transactionManager(事务管理器)
  • dataSource(数据源)
  • databaseIdProvider(数据库厂商标识)
  • mappers(映射器)

configuration

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <properties resource="dbConfig.properties">
        <property name="xx" value="yy"/>
    </properties>

    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/imooc-course?useUnicode=true"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="mapper/imcUserMapper.xml"/>
    </mappers>

</configuration>

mapper

<?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="cn.edu.example.mapper.UserMapper">
    
    <select id="getById" parameterType="int" resultType="cn.edu.example.entity.ImcUser">
        SELECT user_nick AS userNick FROM imc_user WHERE user_id = #{userId};
    </select>

    <update id="updateSexById" parameterType="map">
        UPDATE imc_user SET sex = #{sex} WHERE user_id = #{userId};
    </update>
</mapper>

mybatis运行

public class MybatisHelloWorld {

    public static void main(String[] args) {

        String resouce = "configuration.xml";
        Reader reader;
        try {
            reader = Resources.getResourceAsReader(resouce);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);

            SqlSession sqlSession = sqlSessionFactory.openSession();
            try {
                UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
                ImcUser imcUser = userMapper.getById(1);
                System.out.println(imcUser.getUserNick());
            } finally {
                sqlSession.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

参考文章

相关文章

网友评论

    本文标题:mybatis-3.4.6 配置介绍

    本文链接:https://www.haomeiwen.com/subject/thnyyftx.html