SpringMvc+Spring+Mybatis+Maven整合学习

1.使用Mawen的pom.xml将所需jar包引入工程

2.使用mybatis generator工具生成基本的mapping dao model

3.引入主要的三个配置文件:

a. spring.xml:引入属性properties,自动注入servies层

<span style="white-space:pre">		</span><!-- 引入属性文件 -->
		<context:property-placeholder location="classpath:config.properties" />


		<!-- 自动扫描(自动注入) -->
		<context:component-scan base-package="sy.service" />

b. spring-mybatis.xml:配置数据源,mybatis数据映射

<span style="white-space:pre">	</span><!-- myBatis文件 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
		<property name="mapperLocations" value="classpath:sy/mapping/*.xml" />
	</bean>

	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="sy.dao" />
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	</bean>
c.spring-mvc.xml:自动扫描控制器,请求返回视图前后缀

<span style="white-space:pre">	</span><!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
	<context:component-scan base-package="sy.controller" />
<span style="white-space:pre">	<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
<span style="white-space:pre">	</span><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp" /></span>
4.web.xml将三个配置文件引入:

<span style="white-space:pre">	</span><!--上下文配置-->
<span style="white-space:pre">	</span><context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring.xml,classpath:spring-mybatis.xml</param-value>
	</context-param>
<span style="white-space:pre">	</span><!--servlet使用mvc配置-->
<span style="white-space:pre">	</span><servlet>
		<description>spring mvc servlet</description>
		<servlet-name>springMvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<description>spring mvc 配置文件</description>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring-mvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

5.创建servies及controller 并在其中使用相应注解以便配置扫描

6.针对复杂sql:需要适当修改model,修改默认生成的mapping:

继承原有baseResultMap

collection:list

association:某字段改为引用其他类

<span style="white-space:pre">	</span><resultMap type="sy.model.User" id="userResultMap3" extends="BaseResultMap">
		<collection property="userRoles" javaType="list" ofType="sy.model.UserRole">
			<id property="id" column="userrole_id" />
			<result column="role_id" property="roleId" />
			<result property="userId" column="user_id" />

			<association property="role" javaType="sy.model.Role">
				<id property="id" column="role_id" />
				<result property="text" column="role_text" />
			</association>
		</collection>
	</resultMap>
7.使用junit测试:使用spring注解快速测试

package sy.test;

import java.util.List;

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

import sy.model.User;
import sy.service.UserServiceI;

import com.alibaba.fastjson.JSON;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring.xml", "classpath:spring-mybatis.xml" })
public class TestMybatis {

	private static final Logger logger = Logger.getLogger(TestMybatis.class);

	private UserServiceI userService;

	@Test
	public void test4() {
		List<User> l = userService.getAll3();
		logger.info(JSON.toJSONStringWithDateFormat(l, "yyyy-MM-dd HH:mm:ss"));
	}
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值