1 间接接口实现方式
PeopleInfosMapper.xml->PeopleInfosService.java->PeopleInfosServiceImpl.java
xml与Service一一对应,即Service与xml的SQL是全等的,在Impl中实现Service.
1.0 xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sb.mapper.PeopleInfosMapper">
<!-- <mapper namespace="com.sb.dao.PeopleInfosDao"> -->
<select id="selectAllPeopleInfos" resultType="PeopleInfos">
select * from peopleinfostable
</select>
</mapper>
1.2 Servcie
package com.sb.service;
import com.sb.po.PeopleInfos;
import java.util.List;
public interface PeopleInfosService{
public List<PeopleInfos> getAllPeopleInfos();
}
1.3 ServiceImpl
package com.sb.service.impl;
import java.util.List;
import com.sb.service.PeopleInfosService;
// import com.sb.dao.PeopleInfosDao;
import com.sb.mapper.PeopleInfosMapper;
import com.sb.po.PeopleInfos;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class PeopleInfosServiceImpl implements PeopleInfosService{
@Autowired
private PeopleInfosMapper peopleInfosMapper;
@Override
public List<PeopleInfos> getAllPeopleInfos(){
// List<PeopleInfos> infos = peopleInfosDao.selectAllPeopleInfos();
List<PeopleInfos> infos = peopleInfosMapper.selectAllPeopleInfos();
return infos;
}
}
2 直接接口实现方式
PeopleInfosMapper.xml->PeopleInfosMapper.java->PeopleInfosAnotherService.java
xml与Mapper一一对应,Service自由组合Mapper.
2.1 xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sb.mapper.PeopleInfosMapper">
<!-- <mapper namespace="com.sb.dao.PeopleInfosDao"> -->
<select id="selectAllPeopleInfos" resultType="PeopleInfos">
select * from peopleinfostable
</select>
</mapper>
2.2 Mapper
package com.sb.mapper;
import java.util.List;
import com.sb.po.PeopleInfos;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
public interface PeopleInfosMapper{
public List<PeopleInfos> selectAllPeopleInfos();
}
2.3 Service
package com.sb.service;
import com.sb.po.PeopleInfos;
import com.sb.mapper.PeopleInfosMapper;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class PeopleInfosAnotherService {
@Autowired
private PeopleInfosMapper peopleInfosMapper;
public List<PeopleInfos> getAllPeopleInfos(){
List<PeopleInfos> infos = peopleInfosMapper.selectAllPeopleInfos();
return infos;
}
}
3 小结
- xml存在一个全等映射的文件,即一个xml中的id全等映射到一个文件,如Service或Mapper中
- xml的全等映射文件为interface,面向接口编程
- 接口的下一级文件为class,实现功能,此时就有两种方式实现接口,一种是直接在Service中利用注解的形式,实现接口,另一种,是使用Java的implements方式实现