`

SSM框架中Junit的应用

 
阅读更多

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

	<context:annotation-config />
	<context:component-scan base-package="cn.*" />
    <context:property-placeholder location="classpath:jdbc.properties" />

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName">
			<value>${driverClassName}</value>
		</property>
		<property name="url">
			<value>${url}</value>
		</property>
		<property name="username">
			<value>${username}</value>
		</property>
		<property name="password">
			<value>${password}</value>
		</property>
		<property name="initialSize">
			<value>${initialSize}</value>
		</property>
		<property name="minIdle">
			<value>${minIdle}</value>
		</property>
		<property name="maxActive">
			<value>${maxActive}</value>
		</property>
		<property name="maxIdle">
			<value>${maxIdle}</value>
		</property>
	</bean>

	<!-- 定义全局的事务控制 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
	<!-- 开启注解方式声明事务 -->
	<tx:annotation-driven />

	<!-- 定义SqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="mapperLocations" value="classpath*:com/ssm/mapping/*.xml" />
		<property name="typeAliasesPackage" value="com.mybatis.model" />
	</bean>

	<!-- 自动扫描 mapper,允许自动注入(根据类型匹配),不需要逐个配置mapper -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.ssm.dao" />
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
	</bean>

	<!-- 这里配置成spring中注解+自动扫描方式,相对XML文件配置简化得多。 -->
	<!-- @Repository:DAO层组件,@Service:业务层组件,@Controller:控制层组件 -->
	<context:component-scan base-package="com.ssm"
		use-default-filters="false">
		<context:include-filter type="annotation"
			expression="org.springframework.stereotype.Controller" />
		<context:include-filter type="annotation"
			expression="org.springframework.stereotype.Service" />
		<context:include-filter type="annotation"
			expression="org.springframework.stereotype.Repository" />
	</context:component-scan>
</beans>

 

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>
    <!-- mybatis别名定义 -->
   <typeAliases> 
        <typeAlias alias="User" type="com.ssm.model.User"/> 
    </typeAliases>
    
	<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://localhost:3306/lucky" />
				<property name="username" value="cool" />
				<property name="password" value="cool" />
			</dataSource>
		</environment>
	</environments>

	<mappers>
		<mapper resource="com/ssm/mapping/UserMapper.xml" />
	</mappers>

</configuration>

  

 

LoginServiceImplTest.java

/**
 * 
 */
package com.ssm.service.impl;

import static org.junit.Assert.assertEquals;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.ssm.model.UserKey;
import com.ssm.service.LoginService;

/**
 * @author guanhw
 *
 */
@RunWith(SpringJUnit4ClassRunner.class)  
@ContextConfiguration(locations={"classpath:applicationContext.xml","classpath:mybatis-config.xml"}) 
public class LoginServiceImplTest {
	
	@Autowired
	// 多个相同类型时选择注入哪一个
	@Qualifier("loginServiceImpl")
    public LoginService loginService;  

	/**
	 * Test method for {@link com.ssm.service.impl.LoginServiceImpl#IsLogin(com.ssm.model.UserKey)}.
	 */
	@Test
	public void testIsLogin() {
		UserKey userKey = new UserKey();
		userKey.setUsername("cool");
		userKey.setPassword("cool");
		boolean selResult = loginService.IsLogin(userKey);
		
		assertEquals(selResult, true);
	}

}

 

TestMapperUser.java

package com.ssm.test;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.ssm.dao.UserMapper;
import com.ssm.model.User;
import com.ssm.model.UserKey;
import com.ssm.utils.MyBatisUtil;

public class TestMapperUser {
	static SqlSessionFactory sqlSessionFactory = null;

	static {
		sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
	}

	void testQueryByUserNameAndPassword() {

		SqlSession sqlSession = sqlSessionFactory.openSession();

		try {
			UserMapper mapper = sqlSession.getMapper(UserMapper.class);

			UserKey userKey = new UserKey();
			userKey.setUsername("cool");
			userKey.setPassword("cool");
			User user = mapper.selectByPrimaryKey(userKey);

			System.out.println(
					user.getUsername() + "," + user.getFullname());
		} finally {
			sqlSession.close();
		}
	} // end of testQueryByCondition
}

 

MyBatisUtils.java

package com.ssm.utils;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtil {
	
	private final static SqlSessionFactory sqlSessionFactory ;

	static {
		String resouce = "mybatis-config.xml";
		
		Reader reader = null;
		
		try {
			reader = Resources.getResourceAsReader(resouce);
			
		} catch (IOException e) {
			System.out.println(e.getMessage());
		}

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

	public static SqlSessionFactory getSqlSessionFactory() {
		return sqlSessionFactory ;
	}
}

 

 

分享到:
评论

相关推荐

    eclipse+ssm框架项目源码

    SSM框架,全称Spring、SpringMVC和MyBatis,是Java开发中常用的一种集成框架,用于构建高效、灵活的Web应用。本项目源码是基于Eclipse IDE,未使用Maven构建工具的SSM框架实现。接下来,我们将详细讨论SSM框架的各个...

    SSM框架整合的资料(pdf版本),直接下载打开后即可查阅

    SSM框架,全称为Spring、SpringMVC和MyBatis的整合,是JavaEE开发中广泛应用的技术架构。这个框架集合了Spring的全面控制反转和依赖注入能力,SpringMVC的请求处理和视图管理,以及MyBatis的灵活数据持久化机制。...

    SSM框架搭建实例

    在SSM框架中,Spring作为基础框架,负责管理整个应用的bean,包括数据库连接池、服务层对象、DAO层对象等。 2. **SpringMVC**:Spring的Web MVC模块,用于构建Web应用程序。它提供了模型-视图-控制器的设计模式,...

    基于SSM框架的旅游从业人员管理系统

    SSM框架,即Spring、SpringMVC和Mybatis的组合,是Java Web开发中常用的一种轻量级框架集合。这三大框架各自承担着不同的职责,协同工作,为开发者提供了高效且灵活的开发环境。 1. **Spring框架**:Spring是Java...

    SSM框架简单搭建

    6. **创建Maven项目**:在IDE中新建一个Maven项目,并在pom.xml文件中添加SSM框架的依赖。 7. **配置SSM**:在src/main/resources下创建Spring的applicationContext.xml和SpringMVC的servlet-context.xml,以及...

    JavaWeb基于SSM框架的课程设计

    在本项目中,"JavaWeb基于SSM框架的课程设计"是一个典型的Web应用程序开发实践,主要使用了Spring、SpringMVC和MyBatis这三大框架,即SSM框架。这个系统设计的目标是实现一个报修与维修管理平台,旨在帮助客户提交...

    ssm框架的整合

    5. 应用场景:SSM框架适用于大型企业级应用,特别是在数据量大、业务复杂的项目中,其灵活性和可扩展性能够满足各种需求。例如,电商平台、在线教育平台、社交网络等都可以选择SSM作为技术栈。 6. 性能优化:整合...

    SSM框架整合超详细文件版,附带源码

    - 测试:编写JUnit测试用例,验证SSM框架整合是否成功。 5. **源码分析**:附带的源码可以帮助读者了解每个层次的实现细节,例如,Controller如何转发请求,Service如何调用DAO,以及Mybatis的SQL是如何执行的。 ...

    ssm框架搭建——实现增删查改用户信息

    SSM框架,全称Spring、SpringMVC和MyBatis,是Java开发Web应用时常用的三大组件。这个项目"ssm框架搭建——实现增删查改用户信息"旨在教你如何利用这些框架搭建一个基础的用户管理系统,具备基本的CRUD(创建、读取...

    JavaSSM框架整合demo

    Java SSM框架整合是Java Web开发中常见的技术组合,它由Spring、Spring MVC和MyBatis三个组件构成,为开发者提供了强大的数据访问和业务逻辑处理能力。本项目"JavaSSM框架整合demo"是一个示例工程,旨在帮助初学者...

    SSM框架JAR包

    SSM框架通常会包含JUnit或其他测试框架,用于对各个组件进行单元测试。这有助于确保代码的质量,发现并修复潜在问题。 6. 数据库驱动: 这个JAR包可能还包含了不同数据库的驱动,例如MySQL、Oracle等,使得项目能够...

    SSM框架完整版下载

    SSM框架,全称为Spring、SpringMVC和MyBatis的集成框架,是Java Web开发中常用的一种技术栈。这个框架结合了Spring的核心IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)...

    简单的SSM框架

    SSM框架是Java web开发中常用的三大框架Spring、Spring MVC和MyBatis的组合,它在企业级应用开发中有着广泛的应用。这个名为"ssmdemo"的项目,显然是一个用于学习或实践SSM框架的基础示例。让我们深入探讨一下SSM...

    基于ssm框架整合的,用户查询、删除、添加、修改功能的网页

    11. **单元测试与集成测试**:SSM框架支持JUnit和Mockito等工具进行单元测试,同时可以使用Spring Boot Test进行集成测试,确保代码质量和功能的正确性。 这个项目适合初学者熟悉SSM框架的整合和使用,通过实践加深...

    SSM框架整合所用jar包

    SSM框架,全称为Spring、SpringMVC和MyBatis的集成框架,是Java Web开发中常用的一种技术栈。在Java企业级应用开发中,这三个框架的整合能够提供高效、灵活且可扩展的解决方案。下面将详细介绍SSM框架整合过程中所...

    SSM框架易买网

    下面我们将深入探讨SSM框架以及在购物平台中的应用。 1. **Spring框架**:Spring作为核心容器,负责管理应用程序的bean,通过依赖注入(DI)和面向切面编程(AOP)来解耦代码。在易买网中,Spring管理了业务逻辑层...

    配置ssm框架需要的文件.7z

    SSM框架是由Spring、Spring MVC和MyBatis三个开源组件组成的流行Java web开发框架。它在企业级应用中广泛使用,因为它的灵活性、模块化和高效性。下面将详细介绍SSM框架配置过程中涉及的关键知识点: 1. **Spring...

    基于ssm框架的电子商务平台设计与实现-毕业设计答辩PPT

    它管理着应用中的对象生命周期,使得代码更加松耦合,易于测试和维护。此外,Spring的事务管理功能确保了数据操作的原子性和一致性,这对于处理复杂的商务逻辑至关重要。 2. **Spring MVC**:作为控制层,Spring ...

    SSM框架所需架包

    在提供的"SSM框架所需架包"中,包含了SSM框架运行所需的全部库文件,如spring、spring-webmvc、mybatis、mybatis-spring等,还有可能包括其他依赖如log4j、junit等辅助开发和测试的库。这些库文件确保了开发者可以...

    SSM框架新闻管理系统

    这个项目对于初学者来说是一个很好的实践平台,可以帮助他们深入理解和掌握SSM框架的核心原理及其在实际项目中的应用。 首先,Spring框架作为整个系统的中心,负责管理对象的生命周期和依赖注入。在本项目中,...

Global site tag (gtag.js) - Google Analytics