mybatis_单纯的测试第一次运行

本文介绍了使用MyBatis框架的基本步骤,包括配置依赖、设置日志格式、定义配置文件、创建Mapper接口及XML文件,最后通过一个简单的测试案例验证配置的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mybatis_单纯的测试第一次运行

配置文件

pom

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.46</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.25</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.12</version>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.16.20</version>
    </dependency>

设置日志格式(非必要)


log4j.rootLogger=ERROR, stdout
log4j.logger.tk.mybatis.simple.mapper=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

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

    <settings>

        <setting name="cacheEnabled" value="true"/>

        <setting name="defaultStatementTimeout" value="3000"/>

        <setting name="mapUnderscoreToCamelCase" value="true"/>

        <setting name="useGeneratedKeys" value="true"/>
        <!--TODO 换logback 数据-->
        <setting name="logImpl" value="LOG4J"/>
    </settings>

    <typeAliases>
        <!--该包下的类在使用时不用写出权限的名 只要类名就行-->
        <package name="com.cctv.simple.model"/>
    </typeAliases>


    <environments default="development">
        <environment id="development">
            <!-- 配置事务管理 ,采用JDBC管理事务-->
            <transactionManager type="JDBC"/>
            <!-- POOLED是mybatis的 数据源 -->
            <!-- JNDI是基于tomcat的数据源 -->
            <!--TODO 换druid 还有那个hikia 2018年6月5日20:08:24-->
            <dataSource type="POOLED">
                <!--TODO 配置文件方式 + @configuration 2018年6月5日20:09:24-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url"
                          value="jdbc:mysql://116.196.72.142:3306/mybatis?useUnicode=true&amp;characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="tangzekaiwawa"/>
            </dataSource>
        </environment>
    </environments>

<mappers>
    <!--给出mapper.xml文件位置   因为mapper接口和xml对应关系 所以根据接口扫描xml也可以-->
    <!--<com resource="com/cctv/simple/com/UserMapper.xml"/>-->
    <package name="com.cctv.simple.mapper"/>
</mappers>
    <!-- Continue going here -->

</configuration>

开始使用

Mapper.class


package com.cctv.simple.mapper;

import com.cctv.simple.model.SysUser;

public interface UserMapper {
    SysUser selectUserById(Long id);
}

Mapper.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">
<!--当前xml命名空间-->
<mapper namespace="com.cctv.simple.mapper.UserMapper">


   <!-- <typeAliases>
        该包下的类在使用时不用写出权限的名 只要类名就行
        <package name="com.cctv.simple.model"/>
    </typeAliases>
    -->
    <!--<select id="selectUserById" resultType="com.cctv.simple.model.SysUser">-->
    <select id="selectUserById" resultType="SysUser">
        select
        id,
        user_name userName,
        user_password userPassword,
        user_email userEmail,
        user_info userInfo,
        head_img headImg,
        create_time createTime
--         因为开启了驼峰所以这里的实体字段可以省略
        from sys_user where id=#{id}
    </select>
</mapper>

注意:mapper.xml和接口的包从java/resources下开始路径要一致
原因是配置的自动扫描 他会先扫java下接口mapper然后在resources下同位置找xml 找不到就报错


<mappers>
    <!--给出mapper.xml文件位置   因为mapper接口和xml对应关系 所以根据接口扫描xml也可以-->
    <!--<com resource="com/cctv/simple/com/UserMapper.xml"/>-->
    <package name="com.cctv.simple.mapper"/>
</mappers>

如果路径无法保持一致的话可以用↓(?)


<mapepr resources="com/cctv/simple/mapper/xxx.xml">

开始测试


public class BaseMapperTest {

private static SqlSessionFactory factory;

    @BeforeClass
    public static void init() {
        try {
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            factory = new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public SqlSession getSqlsession() {
        return factory.openSession();
    }

}

public class FirstTest extends BaseMapperTest {

    SqlSession sqlSession = getSqlsession();
    @Test
    public void SelectUserByIdTest() {

        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        SysUser sysUser = userMapper.selectUserById(1L);
        Assert.assertNotNull(sysUser);
        sqlSession.close();
    }

总结

一个窒息的问题 在idea里创建xml由于第一次设的格式不对不是.xml 然后改回.xml
发现xml不显示提示了就是普通的记事本那种效果 然后删了这个文件 新建也不管用 >idea对这个名字已经默认不是xml了还是怎么地 难受

image

学了忘忘了学 从现在起多总结吧 不然过几天又忘了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值