四、maven项目搭建 springmvc+ spring + mybatis(ssm框架搭建完成)

前台控制器springmvc搭建好了以后现在也算是完成,后面就要搭建mybatis,不多说下面就开始具体的实现步骤

1、数据准备,一个可连接的mysql数据库(毕竟是开源免费的,oracle也可以)

创建数据库SoulFeeling ,执行下面sql语句

DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(255) DEFAULT NULL,
  `user_pwd` varchar(255) DEFAULT NULL,
  `age` int(5) DEFAULT NULL,
  `sex` int(5) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of tb_user
-- ----------------------------
INSERT INTO `tb_user` VALUES ('1', 'zhangsan', '123', '25', '1');
INSERT INTO `tb_user` VALUES ('2', 'lisi', '123', '28', '1');

2、添加三层、以及其他对应的包名

com.soul.ssm.controller、 

com.soul.ssm.service、 

com.soul.ssm.service.impl 、

com.soul.ssm.mapper 、 

com.soul.ssm.model

3、利用Generator- mybatis生成对应的对应表tb_user的 对象和mybatis的映射文件

这里不再具体说怎么生成mybatis的映射文件,这里dao和对应的xml文件统一放在mapper包下(各有各的习惯,有的人是将这个类文件分开放的,我这里放在一块主要是在添加方法的时候修改方便)



现在开始配置mybatis

4、首先配置pom相应的maven jar包(包含上节的springmvc 的jar包)

	<properties>
		<!-- spring版本号 -->
		<spring.version>4.0.2.RELEASE</spring.version>
		<!-- mybatis版本号 -->
		<mybatis.version>3.4.5</mybatis.version>
		<!-- log4j日志文件管理包版本 -->
		<slf4j.version>1.7.7</slf4j.version>
		<log4j.version>1.2.17</log4j.version>
	</properties>

	<dependencies>
		<!-- spring-mvc -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<!-- spring 核心包 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jms</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<!-- mybatis 包 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>${mybatis.version}</version>
		</dependency>
		<!-- spring 整合mybatis兼容包 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.1</version>
		</dependency>
		<!-- mysql 包 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.43</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.11</version>
		</dependency>
	</dependencies>

5、在resources 的位置添加三个配置文件(加上spring-mvc.xml)

spring-config.xml、 spring-mybatis.xml  和  log4j.properties 

加上原来的spring-mvc.xml   一共四个配置文件

spring-config.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:context="http://www.springframework.org/schema/context"
	xmlns:task="http://www.springframework.org/schema/task"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
           	http://www.springframework.org/schema/beans/spring-beans.xsd
           	http://www.springframework.org/schema/context
           	http://www.springframework.org/schema/context/spring-context.xsd
           	http://www.springframework.org/schema/task  
		http://www.springframework.org/schema/task/spring-task-4.0.xsd
		http://www.springframework.org/schema/tx 
    	   	http://www.springframework.org/schema/tx/spring-tx.xsd">

	<!-- 自动扫描注解的bean -->
	<context:component-scan base-package="com.soul.ssm.service" />

	<!-- 引入dbconfig.properties属性文件 -->
	<context:property-placeholder location="classpath:jdbc.properties" />

</beans>

 spring-mybatis.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:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
				    http://www.springframework.org/schema/beans/spring-beans.xsd
				    http://www.springframework.org/schema/context
				    http://www.springframework.org/schema/context/spring-context.xsd
				    http://www.springframework.org/schema/aop
				    http://www.springframework.org/schema/aop/spring-aop.xsd
				    http://www.springframework.org/schema/tx 
				    http://www.springframework.org/schema/tx/spring-tx.xsd">
	<!-- 自动扫描 -->
	<context:component-scan base-package="com.soul.ssm.mapper" />
	<!-- 引入配置文件 -->
	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location" value="classpath:jdbc.properties" />
	</bean>

	<!-- 配置数据源 下面数据连接可以引用jdbc.properties d的参数 也可以直接配合数据库参数 -->
	<!-- 阿里 druid 数据库连接池 -->
	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
		<property name="url" value="jdbc:mysql://47.93.61.197:3306/ssss"></property>
		<property name="username" value="root"></property>
		<property name="password" value="admin"></property>
	</bean>


	<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="mapperLocations" value="classpath:com/soul/ssm/mapper/*.xml"></property>
	</bean>
	<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.soul.ssm.mapper"></property>
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
	</bean>

	<!-- 事务管理器 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>

	<tx:annotation-driven transaction-manager="transactionManager" /> 

</beans>  


 log4j.properties 

log4j.rootLogger=DEBUG, stdout

log4j.logger.org.apache.ibatis=DEBUG

### Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n


这里也将spring-mvc.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:p="http://www.springframework.org/schema/p"  
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans    
                        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd    
                        http://www.springframework.org/schema/context    
                        http://www.springframework.org/schema/context/spring-context-4.0.xsd    
                        http://www.springframework.org/schema/mvc    
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
   
   <!-- 扫描controller(controller层注入) -->
   <context:component-scan base-package="com.soul.ssm.controller"/>
     <mvc:annotation-driven />
   <!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
	<!-- <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
		<property name="supportedMediaTypes">
			<list>
				<value>text/html;charset=UTF-8</value>
			</list>
		</property>
	</bean> -->
   
	<!-- 静态资源路径过滤  -->
	<mvc:resources mapping="/public/**" location="/public/" /> 
	
   <!-- 对模型视图添加前后缀 -->
   <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      p:prefix="/WEB-INF/view/" p:suffix=".jsp"/>
      
</beans>  

 最后配置web.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" version="3.0">
	<display-name>Archetype Created Web Application</display-name>

	<!-- 项目编码问题 -->
	<filter>
		<filter-name>characterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>characterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<!-- spring 和 mybatis 的整合 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- ContextLoaderListener初始化Spring上下文时需要使用到的contextConfigLocation参数 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<!-- 配置spring-config.xml和spring-mybatis.xml这两个配置文件的位置,固定写法 -->
		<param-value>classpath:spring-config.xml,classpath:spring-mybatis.xml</param-value>
	</context-param>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<!-- springMVC核心配置 -->
	<servlet>
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<!--spingMVC的配置路径 -->
			<param-value>classpath:spring-mvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<!-- 拦截设置 -->
	<servlet-mapping>
		<servlet-name>dispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>


6、项目的配置已经完成,现在就剩下添加一个基本的查询逻辑,来测试一下项目是否真的可以运行起来
在一开始使用Generator-mybatis的 mybatis映射文件(Mapper包下的 UserMapper.java和UserMapper.xml
)和bean对象类(model包下的User.java )
现在需要新建立controller 和 service的文件
service包下新建IUserService.java 接口类
package com.soul.ssm.service;
import com.soul.ssm.model.User;
public interface IUserService {
	public User getUserById(Integer id);
}
service.impl包下新建UserServicImpl.java (IUserService 的实现类),不要忘了注释 @Service("UserService")

package com.soul.ssm.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.soul.ssm.mapper.UserMapper;
import com.soul.ssm.model.User;
import com.soul.ssm.service.IUserService;

@Service("UserService")
public class UserServiceImpl implements IUserService {
	@Autowired
	private UserMapper userMapper;
	public User getUserById(Integer id) {	
		return userMapper.selectByPrimaryKey(id);
	}
}
Controller包下新建UserController
package com.soul.ssm.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.soul.ssm.model.User;
import com.soul.ssm.service.IUserService;
@RequestMapping("user")
@Controller
public class UserController {
	@Autowired
	private IUserService userService;
	@RequestMapping("index")
	public ModelAndView index2(HttpServletRequest request, HttpServletResponse response) {
		String tempId =  request.getParameter("uid");
		Integer id = null;
		if(tempId!=null && !"".equals(tempId.trim())){
			id = Integer.valueOf(tempId);
		}
		User u = userService.getUserById(id);
		request.setAttribute("user", u);
		return new ModelAndView("/user/index");
	}
}

创建index.jsp文件(webapp/WEB-INF/view/user/index.jsp)
<%@ page language="java" pageEncoding="UTF-8"%> 
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
<%
	String path = request.getContextPath();
	request.setAttribute("path",request.getContextPath());
%>
<html>
<body>
<h2>Hello World!</h2><br>
姓名:${user.userName }<br>
密码:${user.userPwd }<br>
年龄:${user.age }<br>	
性别:${user.sex }<br>
</body>
</html>

保存即可

7、现在已经完成了项目的配置和基本开发,将项目添加到tomcat 运行,如果没有报错,基本就没有为题了
最后访问http://localhost:8080/SoulFeeling/user/index?id=1


现在已经将ssm框架搭建完成

注意:项目如果中间有问题的话可能是jdk、tomcat 和 spring对应的版本的关系,这个会有不兼容性的问题

后期我回整理一份关于三者之间的版本关系

这里用到的版本是jdk7、 tomcat7、spring4.0.2

demo下载(现在csdn下载最低是1积分,积分土豪专用偷笑

http://download.csdn.net/download/soulfeeling/9948826


如果没有csdn账号或者不想用积分下载的朋友,下面是百度云的下载地址(百度可能会清连接,如过资源失效@本人)

链接:http://pan.baidu.com/s/1nvwrh3r 密码:1ha6







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值