您的位置:首页 > 编程语言 > Java开发

SpringMvc+Spring+Mybatis+Maven整合学习

2014-12-17 10:30 761 查看
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"));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: