之前做好了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