频道栏目
首页 > 资讯 > Java > 正文

Maven+Spring+Spring MVC+MyBatis+MySQL整合SSM框架

16-07-12        来源:[db:作者]  
收藏   我要投稿

进入公司开发已经3个多月了,项目用的是Maven+Spring+Spring MVC+MyBatis+MySQL,趁这个周末有空,仔细研读一下公司项目的基本框架,学习一下这个环境是怎么搭建起来的,经过自己的研究终于是成功地试验出来。自己亲手做的才算是自己学到的,决定将其记录下来,以便日后查询,源码同时也欢迎大家拍砖。

一、数据库的准备

这次整合试验想着做个简单的,就决定做一个普通的用户登陆,就一张表吧

我新建的数据库名字是test,然后新建了一张表

 

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `username` varchar(40) NOT NULL,
  `password` varchar(40) NOT NULL,
  PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
二、Maven WEB项目的创建

 

这个在这里就不重复了,我这次的项目是基于上次的新建的maven web项目的,如果需要,请参考我之前的博客:http://blog.csdn.net/donggua3694857/article/details/51638598

三、开始整合之旅

用过maven的都知道,有了他我们就没必要去网上下载一堆的jar文件然后自己去管理(虽然我也挺习惯这个方式),下面列出的是我的pom文件,里面列出了哪些jar包都是干什么用的。

 


  4.0.0
  com.gray4java
  maven
  war
  0.0.1-SNAPSHOT
  maven Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      3.8.1
      test
    
	  
	
		org.springframework
		spring-test
		3.2.0.RELEASE
	
	
		org.springframework
		spring-webmvc
		3.2.0.RELEASE
	
	
		org.springframework
		spring-core
		3.2.0.RELEASE
	
	
    	org.springframework
    	spring-aop
   		3.2.0.RELEASE
	
	
		aspectj
		aspectjweaver
		1.5.4
	
	
		aspectj
		aspectjrt
		1.5.4
	
	
		org.codehaus.jackson
		jackson-mapper-asl
		1.9.11
	
	
	
		org.mybatis
		mybatis
		3.1.1
	
	
		org.mybatis
		mybatis-spring
		1.1.1
	
	
		mysql
		mysql-connector-java
		5.1.21
	
	
		c3p0
		c3p0
		0.9.1.2
		jar
	
	
	
		org.slf4j
		slf4j-api
		1.7.5
	
	
		org.slf4j
		slf4j-log4j12
		1.7.5
	
	
		log4j
		log4j
		1.2.17
	
	
		jstl
		jstl
		1.2
	
	
       	org.springframework
       	spring-context-support
       	3.1.2.RELEASE
       	jar
       	compile
	
  
  
    maven
    
     
            org.apache.tomcat.maven 
            tomcat6-maven-plugin 
            2.1
            
            http://localhost:9090/manager
            Tomcat6 
            9090
            /
           
        
    
  

maven配置好后就等它把jar包下载完,在下载的过程中最有可能遇到的问题就是Missing artifact XXXXXX,然后解决的办法就是,原则是找到本地的仓库,然后删除那个对应的,文件后面有lastUpate的再重新下载。

 

3.1 Spring和mybatis的整合

3.1.1 创建数据库属性文件jdbc.properties

 

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://127.0.0.1:3306/test
db.username=root
db.password=123456
3.1.2 创建mybatis的配置文件mybatis-config.xml

 

我觉得这个纯粹是给实体类起别名的。

 




    
		
    
3.1.3 创建spring-mybatis配置文件

 

这个配置文件用于spring和mybatis整合的重要文件,主要有配置数据库、主动扫描和注入一些bean,详细配置如下:

 



	
	
	
	
	
	
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	
	
	
	
		
		
		
		
	

	
		
		
	
	
	
	  
	
	
	
	  

	   
             
            
       
3.1.4 日志的输出配置

 

mybatis内置的日志工厂提供了日志功能,但是它的具体实现有他最先找到的方法来决定,顺序分别是:

 

slf4japache commons logginglog4j 2log4jjdk logging 如果一个都没找到,日志功能就被禁用掉了(在我实验的途中,遇到的情况是如果不使用slf4j,只有log4j他就不打印SQL语句,只打印别的日志,可能是我还不会配置不对,因为我见网上的那些博客都没有引入slf4j的包也能使用,对于这问题欢迎牛人给我留言解答)下面是我的创建的log4j.properties文件

 

 

##root logger , local level: debug, output: stdout ##
## root logger: better performance than others   ##
log4j.rootLogger=info,stdout

log4j.appender.F=org.apache.log4j.DailyRollingFileAppender
log4j.appender.F.DatePattern='.'yyyy-MM-dd
log4j.appender.F.File=logs/rcp-service-test.log
log4j.appender.F.layout=org.apache.log4j.PatternLayout
log4j.appender.F.layout.ConversionPattern=[%d{ISO8601}|%t|%-5p|%C] - %m%n
log4j.appender.F.encoding=UTF-8

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}|%-5p|%c] - %m%n
#show application DEBUG log
log4j.logger.com.asecs = DEBUG,F
#show ibatis DEBUG log
log4j.logger.com.ibatis = DEBUG  
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUG  
log4j.logger.com.ibatis.common.jdbc.ScriptRunner = DEBUG  
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG  
log4j.logger.java.sql.Connection = DEBUG  
log4j.logger.java.sql.Statement = DEBUG  
log4j.logger.java.sql.PreparedStatement = DEBUG
log4j.logger.java.sql.ResultSet = DEBUG 
3.1.5 mybatis剩下的工作

 

前面的工作做完,spring和mybatis的整合就差不多了,接下来是创建实体类、mybatis映射文件以及DAO接口,service以及它的实现类了。

mybatis有通过Generator自动创建代码的,这里我们就勤快点自己手写了,反正也不多。

实体类User
package com.gray.user.entity;
public class User {
	private String username;
	private String password;
	public String getUsername(){
		return username;
	}
	public void setUsername(String username){
		this.username = username;
	}
	public String getPassword(){
		return password;
	}
	public void setPassword(String password){
		this.password = password;
	}
}
Dao接口UserDao
package com.gray.user.dao;
import java.util.List;

import org.springframework.stereotype.Repository;
import com.gray.user.entity.User;
@Repository
public interface UserDao{
	List selectId(String username);
}
service接口UserService
package com.gray.user.service;

import com.gray.user.entity.User;

public interface UserService {
	boolean doUserLogin(User user);
}
以及它的实现类UserServiceImpl
package com.gray.user.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.gray.user.dao.UserDao;
import com.gray.user.entity.User;
import com.gray.user.service.UserService;
@Service
public class UserServiceImpl implements UserService {
	@Autowired
	private UserDao dao;
	
	public boolean doUserLogin(User user) {
		List list = dao.selectId(user.getUsername());
		if(list.size() == 0){
			return false;
		}else{
			if(list.get(0).getPassword().equals(user.getPassword())){				
				return true;
			}else{
				return false;
			}			
		}
	}	
}
差点还忘了最重要的映射mybatis-user.xml



	
		
		
	
  
    username, password
  
  

 

3.2 整合SpringMVC

完成上面的操作,接下来还剩下最后的整合springmvc,这个除了写配置文件外还需要额外去配置web.xml,废话不多说,直接上配置文件:

3.2.1 创建spring-mvc.xml

 



	
		
			
			
			
			
		
	
	    
	
	 
 			 
 			 
 	 
 	
        
    
	

	
	
	
		
			
				
			
		
	
	
	

	
	
	
		
		
	
	
3.2.3 配置web.xml

 

 



  Archetype Created Web Application



	contextConfigLocation
	classpath:spring-mybatis.xml



	spring监听器
	org.springframework.web.context.ContextLoaderListener




	org.springframework.web.util.IntrospectorCleanupListener

	


	spring mvc servlet
	springMvc
	org.springframework.web.servlet.DispatcherServlet
	
		spring mvc 配置文件
		contextConfigLocation
		classpath:spring-mvc.xml
	
	1


	springMvc
	*.do



	字符集过滤器
	encodingFilter
	org.springframework.web.filter.CharacterEncodingFilter
	
		字符集编码
		encoding
		UTF-8
	


	encodingFilter
	/*




	60




	index.jsp


四、测试阶段

 

千辛万苦终于到了测试阶段。。。要弄懂配置文件里面到底写了些什么东西还是需要花点时间去研读的。

4.1 新建测试页面
测试我新建了两个jsp页面,分别是success.jsp和fail.jsp,顾名思义就是登陆成功了就显示success页面,失败则显示fail页面。页面写得很简单,就不把代码贴出来了,需要的在后面的源码里面有。

4.2 新建控制器 LoginController.java

后台逻辑也同样简单

 

package com.gray.user.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.gray.user.entity.User;
import com.gray.user.service.impl.UserServiceImpl;

@Controller
@RequestMapping("/test") 
public class LoginController {
	@Autowired
	private UserServiceImpl userService;

@RequestMapping("/dologin.do") //url
public String dologin(User user, Model model){
	if(userService.doUserLogin(user)){
		model.addAttribute("successMsg", "登陆成功!");//返回到页面所夹带的参数
		model.addAttribute("name", user.getUsername());
		return "/success";//返回的页面
	}else{
		model.addAttribute("failMsg", "用户不存在或密码错误!");
		return "/fail";
	}	
}
}
4.3部署测试

 

做了那么多,成功或失败测一下就知道了,如果能成功通过测试,那么恭喜你SSM试验整合成功,如果失败了,那就请耐心地调试吧,毕竟程序员整天与bug为伍,或者给我留言或评论,我们一起解决问题一起进步。很显然我的是成功的,不然我也不会写出来是不是,哈哈。

(手动分割线)

这边测试界面写得丑了点,还请大家多多担待.....

终于可以长舒一口气,Maven+Spring+Spring MVC+MyBatis+MySQL整合SSM框架到这里就结束了,要继续加其他功能就在这基础上添加就好,最后附一张项目的完整的目录结构图:

相关TAG标签
上一篇:Java Web项目开发到底需要掌握哪些技术?
下一篇:OpenGL学习脚印:模型加载初步-加载obj模型(load obj model)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站