MAVEN_SPRING+SPRINGMVC+MYBATIS+FREEMARKER 整合

2021-07-14 09:54:29 浏览数 (1)

          在公司实习的时候 公司用的是  MAVEN_SPRING SPRINGMVC MYBATIS FREEMARKER 框架; 用了2个月;就想自己来整合一下框架;

一:

在整合的时候我也参考了很多博文;但是都不一样,比如配置文件,我就不知道怎么样子分才好;有人分2个,有人分3个之类的;这里我分了两个配置文件

一个是;spring-mvc.xml   这个就专门用来配置springmvc的;  一个是spring-mybatis.xml;用来整合spring和mybatis;

       整体如下:

二,maven引入相应的jar包;

代码语言:javascript复制
  4.0.0
  com.szz
  cwgl
  war
  0.0.1-SNAPSHOT
  cwgl Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      3.8.1
      test
    
    
       
     
      com.google.guava
      guava
      15.0
    
    
    
         org.springframework
         spring-web
         3.0.5.RELEASE
    

	
         org.springframework
        spring-webmvc
         3.0.5.RELEASE
     
     
     
       mysql  
       mysql-connector-java  
       5.1.26  
	
	
	
	org.springframework
	spring-jdbc
	4.1.4.RELEASE
	

	
     
            org.mybatis
            mybatis
            3.2.3
        
        
        
     
      org.mybatis
      mybatis-spring
      1.2.1
    
  
     
     
			org.freemarker
			freemarker
			 2.3.20
		
     
     
         
          
          
            log4j  
            log4j  
            ${log4j.version}  
          
          
          
          
          
            com.alibaba  
            fastjson  
            1.1.41  
          
  
  
          
            org.slf4j  
            slf4j-api  
            ${slf4j.version}  
          
  
          
            org.slf4j  
            slf4j-log4j12  
            ${slf4j.version}  
          
          
        

  
    cwgl

三、整合Spring与MyBatis 

 这个文件就是用来完成spring和mybatis的整合的。这里面也没多少行配置,主要的就是自动扫描,自动注入,配置数据库。注释也很详细,大家看看就明白了。

spring-mybatis.xml  

代码语言:javascript复制

spring-mvc。xml

代码语言:javascript复制
				/WEB-INF/view/
			
			
				.jsp

四、 Log4j的配置

 为了方便调试,一般都会使用日志来输出信息,Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

      Log4j的配置很简单,而且也是通用的,下面给出一个基本的配置,换到其他项目中也无需做多大的调整,如果想做调整或者想了解Log4j的各种配置,参看我转载的一篇博文,很详细:

http://blog.csdn.net/zhshulin/article/details/37937365

下面给出配置文件目录:

log4j.properties

代码语言:javascript复制
[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
#定义LOG输出级别  
log4j.rootLogger=INFO,Console,File  
#定义日志输出目的地为控制台  
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.Target=System.out  
#可以灵活地指定日志输出格式,下面一行是指定具体的格式  
log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n  
  
#文件大小到达指定尺寸的时候产生一个新的文件  
log4j.appender.File = org.apache.log4j.RollingFileAppender  
#指定输出目录  
log4j.appender.File.File = logs/ssm.log  
#定义文件最大大小  
log4j.appender.File.MaxFileSize = 10MB  
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志  
log4j.appender.File.Threshold = ALL  
log4j.appender.File.layout = org.apache.log4j.PatternLayout  
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n  

五、

利用MyBatis Generator自动创建代码

参考博文:http://blog.csdn.net/zhshulin/article/details/23912615

mapper.xml生成的文件;

代码语言:javascript复制
    ID, EmplID, Totalincome, percent, TotalEarn, remark
  
  
    select 
    
    from additional
    where ID = #{id,jdbcType=INTEGER}
  
  
 
  
  	
  	  
        and ID=#{condition.id}
      
      
         and EmplID=#{condition.emplid}
      
      
       and Totalincome=#{condition.totalincome}
      
      
       and percent=#{condition.percent}
      
      
       and TotalEarn=#{condition.totalearn}
      
      
       and remark=#{condition.remark}
      
      
  
  
  
  		select * from additional 
  		 
  		   
  		   
  
  
  
  
    delete from additional
    where ID = #{id,jdbcType=INTEGER}
  
  
    insert into additional (ID, EmplID, Totalincome, 
      percent, TotalEarn, remark
      )
    values (#{id,jdbcType=INTEGER}, #{emplid,jdbcType=INTEGER}, #{totalincome,jdbcType=DECIMAL}, 
      #{percent,jdbcType=REAL}, #{totalearn,jdbcType=DECIMAL}, #{remark,jdbcType=VARCHAR}
      )
  
  
    insert into additional
    
      
        ID,
      
      
        EmplID,
      
      
        Totalincome,
      
      
        percent,
      
      
        TotalEarn,
      
      
        remark,
      
    
    
      
        #{id,jdbcType=INTEGER},
      
      
        #{emplid,jdbcType=INTEGER},
      
      
        #{totalincome,jdbcType=DECIMAL},
      
      
        #{percent,jdbcType=REAL},
      
      
        #{totalearn,jdbcType=DECIMAL},
      
      
        #{remark,jdbcType=VARCHAR},
      
    
  
  
    update additional
    
      
        EmplID = #{emplid,jdbcType=INTEGER},
      
      
        Totalincome = #{totalincome,jdbcType=DECIMAL},
      
      
        percent = #{percent,jdbcType=REAL},
      
      
        TotalEarn = #{totalearn,jdbcType=DECIMAL},
      
      
        remark = #{remark,jdbcType=VARCHAR},
      
    
    where ID = #{id,jdbcType=INTEGER}
  
  
    update additional
    set EmplID = #{emplid,jdbcType=INTEGER},
      Totalincome = #{totalincome,jdbcType=DECIMAL},
      percent = #{percent,jdbcType=REAL},
      TotalEarn = #{totalearn,jdbcType=DECIMAL},
      remark = #{remark,jdbcType=VARCHAR}
    where ID = #{id,jdbcType=INTEGER}

自动生成的mapper.xml文件大部分能满足增删改查的要求;  但是查询只给了一个select  by primarykey   ;只能查询一条数据;   我自己写了一个多条件查询的;但是我不知道怎么修改   

MyBatis Generator  让它也自动生成我添加的代码; 等以后有空研究下; 有知道怎么修改的能否告知一二;

六、测试一下;

代码语言:javascript复制
public interface DepartmentService {
代码语言:javascript复制
	//这里没有写全;  就写了2个方法;
	List find(DepartmentVO condition);
	Department get(Integer id);
}
代码语言:javascript复制
@Service("departmentImplService")
public class DepartmentImplService implements DepartmentService{
	
	@Resource
	private IDepartmentDao departmentDAO;
	@Override
	public List find(DepartmentVO condition) {
		// TODO Auto-generated method stub
		/*HashMap param = new HashMap();*/
		Map params = Maps.newHashMap();
		params.put("condition", condition);
		return departmentDAO.find(params);
	}
	@Override
	public Department get(Integer id) {
		// TODO Auto-generated method stub
		return departmentDAO.selectByPrimaryKey(id);
	}

}

//VO是继承model的    方便添加查询条件;

代码语言:javascript复制
@Controller
@RequestMapping("/department")
public class DepartmentController {

	@Resource 
	private DepartmentImplService departmentService;
	
	@RequestMapping("/index")
	public String index(Model model){
		Department dp = departmentService.get(1);
		DepartmentVO condition = new DepartmentVO();
		condition.setStatus("1");
		List dep = departmentService.find(condition);
		model.addAttribute("dp_name", dep.get(0).getDpName());
		return "/test";
	}
}
代码语言:javascript复制
hello!


.........
hello ${dp_name}

运行

完成!!

继续整合freemarker;

只需要在spring-mvc.xml

代码语言:javascript复制

并且maven的pom文件中引入freemarker的jar就行了

代码语言:javascript复制
			org.freemarker
			freemarker
			 2.3.20

整合完成了!!

0 人点赞