SpringMvc(三)配置Mybatis(一)

2014-11-24 00:35:19 · 作者: · 浏览: 2

之前做好了SpringMvc的框架,直接用的jdbc连接数据库不是很方便,这里搭建下Mybatis,hibernate我没用过,Mybatis也不用自己写sql.xml,可以用插件自动生成,方法如下:

首先要在Eclipse安装Mybatis Generator 点击help--install new software 输入地址如下

http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/

\

安装完成后可能要重启Eclipse,然后我们可以随便找个地方,就在test包下吧,右击,新建,Other,找到如下图

\

选择这个Generator,Next确定名称位置后直接完成,会自动生成一个generatorConfig.xml文件,打开后只是一个填写的框架,我已经填好了,并解释如下

  


  

 
   
  
   
		
  
    
     
     
     
     
     
     
     
     
     
    
    
我们可以看到,这个文件可以连接到数据库,根据表结构自动逆向工程生成entity实体类,manager,还有sqlmap.非常简单。只要把位置确定好就行了,这里一定要注意entity的位置,因为sql.xml文件里会用到上面的路径,如果你位置没写对,生成后又调换entity的位置,那sql.xml文件能改死你。

然后确认无误后(这时我们可以先删掉之前配spring时写好的entity和manager了)右击generatorConfig.xml,点击如下

\

就自动生成了,如图

\

可以看到entity,manager还有sqlMap下都是自动生成的,然后sqlMap可以直接剪切掉放到resource包下,看着舒服点service报错是因为我们删掉了之前的dao里的东西。至于generatorConfig.xml就可以卸磨杀驴直接删掉了,碍事,如果想留着以后数据库会更改,这个东西其实完全可以另外新建个项目把这个generatorConfig.xml放到别的项目去,只要配置好路径在别的项目也能生成到本项目。留在本项目看着还碍事。然后我们要细看一个这几个自动生成的东西,实体类就不用说了,就是按照数据库的字段,数据类型生成的。然后每个对应了一个example是用来封装查询条件的。看看代码就明白了,manager提供了基本的增删改查的接口,接口的命名直接对应到了sqlMap下的sql.xml文件。都是针对单表查询的。如果联合查询怎么办呢,自己在再mapper里添加就行了,自动生成这些已经很省力了。

然后service还报错呢,删了原来的东西,新的怎么给service呢。

只需要继续在application.xml继续如下配置就可以了

  
	
  
		
   
		
   
	
  
	
  
	
  
	    
   
		
   
	
  

	
  
	    
   
		
   
	
  
然后service哩就可以用了,但我们记得查询可用类型那是个自身的联合查询。自动生成的sql没有,我们就自定义一个好了。mapper添加方法

    /**
     * 自定义查询可用类型
     */
    List
  
    selectLastTypes();
  

同时对应的sql里以selectLastTypes为id添加sql

 
  
  

service做如下修改

package com.springMvc.service.Impl;

import java.util.List;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.springMvc.dao.manager.AccountTypeMapper;
import com.springMvc.model.TypeInfo;
import com.springMvc.service.TypeService;
@Service
public class TypeServiceImpl implements TypeService{
	//logger
	private final static Logger logger = Logger.getLogger(TypeServiceImpl.class);
//	@Autowired//自动装配dao bean
//	private TypeManager typeManager;
	@Autowired
	private AccountTypeMapper accountTypeMapper;
	@Override
	public List
  
    selectAllTypes() {
		logger.info("----------------调取可用类型,Service层--!");
		return accountTypeMapper.selectLastTypes();
	}

}

  
package com.springMvc.service.Impl;

import java.sql.Date;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.springMvc.dao.entity.AccountInfo;
import com.springMvc.dao.manager.AccountInfoMapper;
import com.springMvc.service.AccountService;
@Service  //标注为服务层的一个service
public class AccountServiceImpl implements AccountService{
	
	//logger
	private final static Logger logger = Logger.getLogger(AccountServiceImpl.class);
//	@Autowired//自动装配dao bean
//	private AccountManager accountManager;
	@Autowired
	private AccountInfoMapper accountInfoMapper;
	@Override
	public void insertAccout(Date acc_time,Integer acc_jine,Integer acc_shouzhi,Integer acc_type,String acc_beizhu) {
		lo