SpringBoot学习总结Mybatis

Mybaits概述

首先mybatis是一个持久层框架,底层基于JDBC与数据交互。
springboot会基于mybatis底层框架创建SqlSessionFactory对象,在通过这个工厂对象去创建SqlSession,通过spring框架把sqlsession注入测试类中,从而访问数据库。

@Mapper

用于描述持久层的接口,告诉spring框架这个接口的实现类由mybatis创建,并将其交给spring框架管理
@Mapper作用于接口上的时候,我们可以不必手动写出它的实现类,可以节约许多的时间。
但是要注意的是@Mapper修饰的接口不能出现重名方法,也就是说不能进行方法的重载,这样的话id会重复从而报错。
在数据库执行方法较为简便的时候还可以使用全注解开发,在底下方法上添加@Select(sql)进行开发,从而省略xml文件的编写。

实例(包含日志记录)

SpringBoot学习总结Mybatis_第1张图片
SpringBoot学习总结Mybatis_第2张图片
创建Goods类

package com.cy.pj.goods.pojo;
import java.util.Date;
public class Goods {
    private Long id;
    private String name;
    private String remark;
    private Date createdTime;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Date getCreatedTime() {
        return createdTime;
    }
    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }
}

创建GoodsMapper.xml配置文件
namespace为接口的全路径
idwei接口中所使用的方法,
resultType为返回的结果集,在本次业务中所填写的是Goods的全路径。
如果执行的是增删改操作是,返回的是所改变的行数,可以不填写resultType。




    

创建GoodsDao接口

package com.cy.pj.goods.dao;
import com.cy.pj.goods.pojo.Goods;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface GoodsDao {
    List findGoods();
}

创建GoodsService接口

package com.cy.pj.goods.service;
import com.cy.pj.goods.pojo.Goods;
import java.util.List;
public interface GoodsService {
    List findGoods();
}

GoodsService接口的实现类创建

package com.cy.pj.goods.service;
import com.cy.pj.goods.dao.GoodsDao;
import com.cy.pj.goods.pojo.Goods;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class GoodsServiceIml implements GoodsService{
    @Autowired
 private GoodsDao goodsDao;
    @Autowired
 private static final Logger log= LoggerFactory.getLogger(GoodsService.class);
    @Override
 public List findGoods() {
        Long t1=System.currentTimeMillis();
        List list=goodsDao.findGoods();
        Long t2=System.currentTimeMillis();
        log.info("findGoods()->t2-t1={}",t2-t1);
        return list;
    }
}

创建测试类

package com.cy.pj.goods.service;
import com.cy.pj.goods.pojo.Goods;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
public class GoodsServiceTests {
    @Autowired
 private GoodsService goodsService;
    @Test
 void testFindGoods(){
        List list=goodsService.findGoods();
        for (Goods g:list){
            System.out.println(g);
        }
    }
}

你可能感兴趣的:(SpringBoot学习总结Mybatis)