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<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方式实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值