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

来源:互联网 发布:extjs文件上传 java 编辑:程序博客网 时间:2024/04/19 13:54

前台控制器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.xsdhttp://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, stdoutlog4j.logger.org.apache.ibatis=DEBUG### Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.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 {@Autowiredprivate 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")@Controllerpublic class UserController {@Autowiredprivate 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







阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 医院多收钱了怎么办 学生总是转笔怎么办 吃错东西呕吐怎么办 手腕筋扭伤了怎么办 右膝盖内侧疼痛怎么办 膝盖关节腔积液怎么办 小孩玩游戏花钱怎么办 初三玩手机上瘾怎么办 无线网有感叹号怎么办 台式电脑网络感叹号怎么办 忘记发红包密码怎么办 电信诈骗被骗后怎么办 C小孩讨厌上学怎么办 军训来大姨妈怎么办 夏天军训来月经怎么办 军训遇到大姨妈怎么办 长春市图书馆读者证怎么办 济宁图书馆怎么办读者卡 海南省图书馆读者证怎么办 小孩子特别能吃怎么办 小孩吃不下去药怎么办 小孩不肯去上学怎么办 初中没有团员证怎么办 入团申请书丢了怎么办 刚成立单位社保怎么办 老年人耳鸣怎么办小妙招 老人血压高200怎么办 老人晕车后难受怎么办 老人头晕心里慌怎么办 老人憋的慌怎么办 老人厌食没胃口怎么办 老年人心里整天疑心病怎么办 一个人疑心太重怎么办 我疑心病很重怎么办 老人疑心病太重怎么办 心理有问题该怎么办 老人得了妄想病怎么办 小学生没做作业怎么办 孩子完不成作业怎么办 敏感多疑怎么办很痛苦 老年人脾气越来越古怪怎么办