美文网首页
Mybatis深入浅出(1>基本配置)

Mybatis深入浅出(1>基本配置)

作者: Stephenwish | 来源:发表于2019-06-11 01:20 被阅读0次

    在上面一篇文章已经介绍了IDEA简单搭建Mybatis,这篇文章运用上一篇的基本流程,在这里不在详细表述。

    1. \color{blue}{项目POM配置文件}

    图1-1:编码配置

    \bigstar{}{} 设置项目的编译环境是 用\color{red}{JDK1.8},以及采用\color{red}{UTF-8}编码

    图1-2:依赖配置
    这里的依赖配置多了个日志记录,简单项目直接使用Log4j即可,Slf4j和Log4j关系 是:Slf4j相当于JAVA里面的\color{red}{\Large 接口},可以理解成日志接口,Slf4j里面是没有打印日志实现的,而Log4j是\color{red}{\Large 具体实现},当然也可以用Logback实现即Slf4j+Logback,当你的系统日志想从Log4j切换到Logback时候,由于使用Slf4J就可以不用改大量配置。

    2. \color{blue}{项目数据准备}
    \color{palegreen}\spadesuit 新建数据库表如 country
    \color{palegreen}\spadesuit 创建数据库表对应的JAVA 实体
    \color{palegreen}\spadesuit 创建数据库表操作如增删改查的 动作实现
    \color{palegreen}\spadesuit 配置数据库增删改查 操作日志

    图2-1 创建Country表

    实体代码

    public class Country {
    //省略GETTER 和SETTER 方法
        private String id;
        private String countryname;
        private String countrycode;
    }
    

    动作实现\color{orange}{(CountryMapper.xml配置)}

    <?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.luban.model.Country">
        <select id="selectAll" resultType="Country">
            select * from country
        </select>
    </mapper>
    

    \bigstar{}{} namespace 需要和下面日志配置的 log4j.logger.\color{red}{com.luban.model.Country}=TRACE 红色部分保持一直,(当然也可以随便取其他值作为命名空间,但要保持一致,不然打印不出日志)

    日志登记\color{orange}{\normalsize(在resources文件夹下面添加log4j.properties)}

    #全局配置
    log4j.rootLogger=ERROR,stdout
    #MyBatis 日志配置
    log4j.logger.com.luban.model.Country=TRACE
    #控制台输出配置
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p  [%t] %m%n
    

    \color{orange}{\normalsize mybatis-config.xml} 配置文件相比《IDEA搭建Mybatis》多了个日志配置

    <?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="mysql.properties"></properties>
    
        <settings>
            <setting name="logImpl" value="LOG4J"/>
        </settings>
    
        <typeAliases>
            <package name="com.luban.model"/>
        </typeAliases>
    
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"></transactionManager>
                <dataSource type="POOLED">
                    <property name="driver" value="${driver}"/>
                    <property name="url" value="${url}"/>
                    <property name="username" value="${username}"/>
                    <property name="password" value="${password}"/>
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <mapper resource="mapper/CountryMapper.xml"/>
        </mappers>
    </configuration>
    

    \bigstar{}{} 在这里 \color{red}{ \huge 重点 } 说三个地方

    • 上篇文章提到mybatis-config.xml 标签字段属性的 顺序问题,经过参考其他文章总结顺序如下

      1.properties
      2.settings
      3.typeAliases
      4.typeHandlers
      5.objectFactory
      6.objectWrapperFactory
      7.plugins
      8.environments
      9.databaseIdProvider
      10.mappers

    • 设置日志字段,其中logImpl 是配置固有字段,这其中值包括(\color{red}{SLF4J| LOG4J | LOG4J2 | JDK\_LOGGING | COMMONS\_LOGGING | STDOUT\_LOGGING | NO\_LOGGING}

    <settings>
            <setting name="logImpl" value="LOG4J"/>
     </settings>
    
    • typeAliases 中配置了一个包的别名,通常一个类要使用全限定名称,配置了包以后就不用每次重复写包,直接写Country, resultType 即可识别到Country,就是\color{green}{’’com.luban.model.Country’’}
    <typeAliases>
            <package name="com.luban.model"/>
     </typeAliases>
    
    <mapper namespace="com.luban.model.Country">
        <select id="selectAll" resultType="Country">
            select * from country
        </select>
    </mapper>
    

    3. \color{blue}{项目主要程序代码}

    package com.luban;
    
    import com.luban.model.Country;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    import java.io.IOException;
    import java.io.Reader;
    import java.util.List;
    
    /**
    * Hello world!
    *
    */
    public class App 
    {
       private static SqlSessionFactory sqlSessionFactory;
       @BeforeClass
       public static void init() throws IOException {
           Reader reader= Resources.getResourceAsReader("mybatis-config.xml");
           sqlSessionFactory =new SqlSessionFactoryBuilder().build(reader);
           reader.close();
       }
    
       @Test
       public  void test(){
           SqlSession sqlSession=sqlSessionFactory.openSession();
           try {
               List<Country> countryList = sqlSession.selectList("selectAll");
               Myprint(countryList);
           } finally {
               sqlSession.close();
           }
       }
    
       private void Myprint(List<Country> countryList){
           for (Country country:countryList) {
               System.out.printf("%s %s %s\n",country.getId(),country.getCountrycode(),country.getCountryname());
           }
    
       }
    
    }
    
    

    \triangle{}{} 项目目录结构

    图 3-1 项目结构

    \triangle{}{} 程序运行结果

    程序运行结果.jpg

    \color{red}{\Huge源码下载}

    \color{green}{\Huge\mathbf{END}}

    相关文章

      网友评论

          本文标题:Mybatis深入浅出(1>基本配置)

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