前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MAVEN_SPRING+SPRINGMVC+MYBATIS+FREEMARKER 整合

MAVEN_SPRING+SPRINGMVC+MYBATIS+FREEMARKER 整合

作者头像
石臻臻的杂货铺[同名公众号]
发布2021-07-14 09:54:29
3720
发布2021-07-14 09:54:29
举报
文章被收录于专栏:kafka专栏

          在公司实习的时候 公司用的是  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

整合完成了!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015/02/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档