美文网首页
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