SpringBoot基础系列:映射实现方式(数据库与实体)

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 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方式实现

你可能感兴趣的:(#,单体服务SpringBoot2)