boot spring test 文档_SpringBoot-16-之整合MyBatis-xml篇+单元测试

0.项目结构java

dao    |---SwordDao

entity

|---Sword

resources

mapper    |---Sword.xml

application.yml

1.application.yml#坑点0 配置mybatis的xml位置mybatis:

mapper-locations: classpath:mapper/*.xml

2.新建dao文件夹,新建dao接口:SwordDao.javapublic interface SwordDao {

List findALL();

Sword findByName(@Param("name") String name);    //坑点1 java没有保存形参的记录,所以多参数用户@Param("name")起名字,不然无法识别

int insert(@Param("name") String name,

@Param("atk") Integer atk,

@Param("hit") Integer hit,

@Param("crit") Integer crit,

@Param("attr_id") Integer attr_id,

@Param("type_id") Integer type_id

);

}

3.在resources下新建mapper文件夹,再建Sword.xml文件,为dao层提供SQL语句<?xml  version="1.0" encoding="UTF-8" ?>mapper

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

insert into sword(name,atk,hit,crit,attr_id,type_id)

values (#{name},#{atk},#{hit},#{crit},#{attr_id},#{type_id})    

SELECT*FROM sword WHERE NAME=#{name}    

SELECT*FROM sword    

4.将dao添加扫包范围:com.toly1994.toly_mybatis.TolyMybatisApplication//坑点5:将dao添加扫包范围@MapperScan(basePackages = {"com.toly1994.toly_mybatis.mapper","com.toly1994.toly_mybatis.dao"})

5.单元测试:test文件夹下com.toly1994.toly_mybatis.dao.SwordDaoTest@RunWith(SpringRunner.class)@SpringBootTestpublic class SwordDaoTest {    @Autowired

private SwordDao mSwordDao;    @Test

public void findALL() {

List all = mSwordDao.findALL();

System.out.println(all.get(5));//Sword(id=6, name=风跃, atk=9020, hit=10, crit=10, attr_id=2, type_id=2)

}    @Test

public void findByName() {

Sword 赤凰 = mSwordDao.findByName("赤凰");

System.out.println(赤凰);//Sword(id=13, name=赤凰, atk=0, hit=100, crit=5, attr_id=1, type_id=2)

}    @Test

public void insert() {        int insert = mSwordDao.insert("尤恨", 4000, 100, 100, 1, 1);

System.out.println(insert);//1

}

}

6.联合查询:可能会疑惑attr_id和type_id是干嘛的,其实是两张关联表

联合查询.png修改实体类两个字段:@Data//=@Getter +@Setterpublic class Sword {    private Integer id;    private String name;    private Integer atk;    private Integer hit;    private Integer crit;    private String type_name;//改为String

private String attr;//改为String}修改查询所有的SQL语句

SELECT id,name,atk,hit,crit,type_name,attr FROM sword AS s

INNER JOIN sword_type AS t ON s.type_id = t.type_id

INNER JOIN sword_attr AS a ON s.attr_id = a.attr_id;

测试:可见两张表和主表连在一起了@Test

public void findALL() {

List all = mSwordDao.findALL();

System.out.println(all.get(5));        //Sword(id=6, name=风跃, atk=9020, hit=10, crit=10, type_name=仙界, attr=木)

}

作者:张风捷特烈

链接:https://www.jianshu.com/p/e7b98cc68a80

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值