Mybatis Junit测试

目录大致

155051_r47y_943316.png

1.Maven 配置

<dependencies>
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
      </dependency>
      <dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	 </dependency>
	 <dependency>  
        <groupId>junit</groupId>  
        <artifactId>junit</artifactId>  
    </dependency>
    <dependency>
	    <groupId>org.slf4j</groupId>
		<artifactId>slf4j-log4j12</artifactId>
	</dependency>
  </dependencies>

2.配置文件

<?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>   
        <!-- changes from the defaults for testing -->   
        <setting name="cacheEnabled" value="false" />   
        <setting name="useGeneratedKeys" value="true" />   
        <setting name="defaultExecutorType" value="REUSE" /> 
        <!--设置日志实现-->
        <setting name="logImpl" value="LOG4J"/>  
    </settings>  
    <environments default="development">   
       <environment id="development">   
           <transactionManager type="jdbc"/>   
           <dataSource type="POOLED">   
              <property name="driver" value="com.mysql.jdbc.Driver"/>   
              <property name="url" value="jdbc:mysql://***"/>   
              <property name="username" value="***"/>   
              <property name="password" value="***"/>   
           </dataSource>   
       </environment>   
    </environments>   
    <mappers>   
        <!--mapper 日志路径-->
        <mapper resource="com/wuage/trade/ops/shared/dal/sql/wfOrder.xml" />     
    </mappers>   
</configuration>

3.log4j.properties 配置

### set log levels ###
log4j.rootLogger = ERROR , C 

# MyBatis logging configuration...   com.wuage.trade.engine.bops.dal.dao   打印日志的目录
log4j.logger.com.wuage.trade.engine.bops.dal.dao=DEBUG

### console ###
log4j.appender.C = org.apache.log4j.ConsoleAppender
log4j.appender.C.Target = System.out
log4j.appender.C.layout = org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern = [%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n

4.工具类

public class MyBatisUtil {
    private final static SqlSessionFactory sqlSessionFactory;
    static {
        //配置文件
        String resource = "testConfig/mybatis-config.xml";
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(resource);
        } catch (IOException e) {
            System.out.println(e.getMessage());

        }
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
    }

    public static SqlSession getSqlSession() {
        //true 自动提交   false 手动提交
        SqlSession sqlSession=sqlSessionFactory.openSession(true);
        return sqlSession;
    }
 
}

5.测试用例

public class WfOrderTest {
    
    SqlSession sqlSession;
    
    @Before
    public void init(){
        sqlSession=MyBatisUtil.getSqlSession();
    }
    @Test
    public void insertTest(){
        WfOrderDAO dao=sqlSession.getMapper(WfOrderDAO.class);
        WfOrder order=new WfOrder();
        order.setBizId(1L);
        dao.insert(order);
    }
    
    @After
    public void destory(){
        sqlSession.close();
    }
    
}

 

转载于:https://my.oschina.net/u/943316/blog/1142828

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.junit 常用注解 @Before 初始化方法,每次测试方法调用前都执行一次。 @After 释放资源:每次测试方法调用后都执行一次 @Test 测试方法:在这里可以测试期望异常和超时时间 @ignore 忽略的测试方法 @BeforeClass 针对所有测试,只执行一次,且必须为static void @AfterClass 针对所有测试,只执行一次,且必须为static void @RunWith 指定测试类使用的某个运行器参数SpringJUnit4ClassRunner.class @Parameters 指定参数类的参数数据集合 @Rule 允许灵活添加或重新定义测试类中的每个测试方法的行为 @FixMethodOrder 指定测试方法的执行顺序 @ContextConfiguration 参数locations="classpath:spring-mybatis.xml" 指向src下的该文件 执行顺序: @BeforeClass---@Before---@Test---@After---@Before ---@Test---@After---@AfterClass junit与main方法相比的优势:代码量少、结构清晰、灵活性更好 main:一个类中只能有一个main方0法 层次结构方面不够清晰 运行具体某一个方法时,要将其他的方法注释掉 2.mybatis的基本配置 1.dao层接口 2.mapper.xml:编辑需要执行的sql语句 (1)mapper标签的namespace属性:指定该xml对应的dao层接口的路径 3.spring-mybatis.xml:spring集成mybatils的配置文件 (1)配置sqlSessionFactory指定要操作的数据库,以及mapper.xml的所在目录 (2)配置指定的dao层接口的目录 3.mybatis的注意事项 1.xml中的sql不得有分号 2.sql语句操作的表明和列名 3.xml中的小于号:$lt;大于号¥> 4.取变量时,如果dao层接口使用的是@param("别名")注解,则根据别名取值 5.mapper.xml中$和#取值的区别 4.mybatis的xml中如何设置返回值 resultType返回的数据类型 5.$和#区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2. $将传入的数据直接显示生成在sql中。如:order by ${user_id}, 如果传入 的值是id,则解析成的sql为order by id. 3. #方式能够很大程度防止sql注入。 4. $方式无法防止Sql注入。 5. $方式一般用于传入数据库对象,例如传入表名. 6. 一般能用#的就别用$ MyBatis排序时使用order by 动态参数时需要注意,用$而不是#
你好!对于Spring Boot整合MyBatisJUnit的问题,可以按照以下步骤进行操作: 1. 首先,确保你已经添加了相关的依赖。在`pom.xml`文件中添加以下依赖: ```xml <dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis Starter --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <!-- JUnit 5 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> ``` 2. 创建数据库配置。在`application.properties`文件中添加数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/db_name spring.datasource.username=db_username spring.datasource.password=db_password spring.datasource.driver-class-name=com.mysql.jdbc.Driver # MyBatis配置 mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.domain ``` 3. 创建MyBatis映射配置文件。在`resources`目录下创建`mapper`目录,并编写对应的XML文件,例如`UserMapper.xml`: ```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.example.mapper.UserMapper"> <!-- SQL语句定义 --> </mapper> ``` 4. 创建实体类和Mapper接口。在`com.example.domain`包下创建实体类和对应的Mapper接口,例如`User.java`和`UserMapper.java`: ```java // User.java public class User { private Long id; private String name; // 省略getter和setter } // UserMapper.java @Mapper public interface UserMapper { User findById(Long id); // 其他方法定义 } ``` 5. 编写Service层和Controller层代码。按照你的业务需求编写对应的Service和Controller代码。 6. 编写JUnit测试代码。在`src/test/java`目录下创建测试类,例如`UserMapperTest.java`: ```java @SpringBootTest @RunWith(SpringRunner.class) public class UserMapperTest { @Autowired private UserMapper userMapper; @Test public void testFindById() { Long id = 1L; User user = userMapper.findById(id); Assert.assertNotNull(user); System.out.println(user.getName()); } } ``` 以上就是简单的Spring Boot整合MyBatisJUnit的步骤。根据你的具体需求,可以适当调整代码和配置。希望能对你有所帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值