关于springboot:SpringBoot学习总结Mybatis

2次阅读

共计 2748 个字符,预计需要花费 7 分钟才能阅读完成。

Mybaits 概述

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

@Mapper

用于形容长久层的接口,通知 spring 框架这个接口的实现类由 mybatis 创立,并将其交给 spring 框架治理
@Mapper 作用于接口上的时候,咱们能够不用手动写出它的实现类,能够节约许多的工夫。
然而要留神的是 @Mapper 润饰的接口不能呈现重名办法,也就是说不能进行办法的重载,这样的话 id 会反复从而报错。
在数据库执行办法较为简便的时候还能够应用全注解开发,在底下办法上增加 @Select(sql)进行开发,从而省略 xml 文件的编写。

实例(蕴含日志记录)



创立 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。

<?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.cy.pj.goods.dao.GoodsDao">
    <select id="findGoods" resultType="com.cy.pj.goods.pojo.Goods">
         select * from tb_goods
     </select>
</mapper>

创立 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<Goods> findGoods();
}

创立 GoodsService 接口

package com.cy.pj.goods.service;
import com.cy.pj.goods.pojo.Goods;
import java.util.List;
public interface GoodsService {List<Goods> 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<Goods> findGoods() {Long t1=System.currentTimeMillis();
        List<Goods> 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<Goods> list=goodsService.findGoods();
        for (Goods g:list){System.out.println(g);
        }
    }
}
正文完
 0