1、pom.xml文件添加依赖

<dependencies>
        
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.0</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>


        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

    </dependencies>

2、resources文件夹

与pom.xml文件同级目录新建文件夹:resource,并包括三个文件:

db.properties、log4j.properties、mybatis-config.xml

如下图所示:

1.png

3、db.properties文件内容

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/mydb?serverTimezone=UTC&useSSL=false
username=root
password=root

4、log4j.properties

# Global logging configuration
log4j.rootLogger=ERROR, stdout

# MyBatis logging configuration...
log4j.logger.cn.mybatis.mydemo.mapper.PersonMapper=DEBUG
log4j.logger.cn.mybatis.mydemo.mapper.CardMapper=DEBUG

# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

5、mybatis-config.xml

<?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">

<!-- XML 配置文件包含对 MyBatis 系统的核心设置 -->
<configuration>

    <!-- 指定 MyBatis 数据库配置文件 -->
    <properties resource="db.properties" />

    <!-- 指定 MyBatis 所用日志的具体实现 -->
    <settings>
        <setting name="logImpl" value="LOG4J" />
    </settings>


    <environments default="mysql">

        <!-- 环境配置,即连接的数据库。 -->
        <environment id="mysql">

            <!-- 指定事务管理类型,type="JDBC"指直接简单使用了JDBC的提交和回滚设置 -->
            <transactionManager type="JDBC" />

            <!-- dataSource指数据源配置,POOLED是JDBC连接对象的数据源连接池的实现。 -->
            <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告诉了MyBatis去哪里找持久化类的映射文件 -->
    <!--  
    <mappers>
        <mapper resource="cn/mybatis/mydemo/mapper/CardMapper.xml" />
        <mapper resource="cn/mybatis/mydemo/mapper/PersonMapper.xml" />
    </mappers>
    -->

    <!-- mappers告诉了MyBatis去哪里找持久化类的映射类(注解形式) -->
    <mappers>
        <mapper class="cn.mybatis.mydemo6.mapper.ArticleMapper" />
        <mapper class="cn.mybatis.mydemo6.mapper.OrderMapper" />
        <mapper class="cn.mybatis.mydemo6.mapper.UserMapper" />
    </mappers>

</configuration>

6、建立实体文件和映射文件

2.png

7、测试

public class App
{
    public static void main(String[] args) throws Exception
    {
        // 读取mybatis-config.xml文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");

        // 初始化mybatis,创建SqlSessionFactory类的实例
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        // 创建Session实例
        SqlSession session = sqlSessionFactory.openSession();

        // 获得xml映射文件中定义的操作语句
        Person p = session.selectOne("cn.mybatis.mydemo.mapper.PersonMapper.selectPersonById", 1);
        System.out.println(p);
        System.out.println(p.getCard().getCode());

        // 获得mapper接口的代理对象
        PersonMapper pm = session.getMapper(PersonMapper.class);
        // 直接调用接口的方法,查询id为1的Peson数据
        Person p2 = pm.selectPersonById(1);
        // 打印Peson对象
        System.out.println(p2);
        // 打印Person对象关联的Card对象
        System.out.println(p2.getCard());

        // 提交事务
        session.commit();
        // 关闭Session
        session.close();
    }
}

8、源码下载

暂时没有是时间上传源码,如果阅读此文未能理解和掌握 MyBatis 3.5 + Maven 环境搭建,请加群索取源码。

标签: none

仅有一条评论

  1. kevin kevin

    你好,我按照上面的步骤
    如果通过 获得xml映射文件中定义的操作语句 是可以获取结果的
    但是我如果mapper接口来测试的时候,同时也参考网上的一些注意事项如下:
    (1)Mapper.xml文件中的namespace与mapper接口的类路径相同。

    (2)Mapper接口方法名和Mapper.xml中定义的每个statement的id相同

    (3)Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同

    (4)Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

    但是 还是报了错,
    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.guigu.mapper.StuMapper.getById

    所以希望博主可以把源码发下我邮箱 我好对比检查下 错在哪
    谢谢!

添加新评论