From 11c569172682a563963ad8e91798fe5b232714e7 Mon Sep 17 00:00:00 2001 From: studyingpanda Date: Sun, 26 Apr 2020 23:10:06 +0800 Subject: [PATCH] chen --- .../src/main/resources/application.properties | 2 + spring-boot-mybatis/pom.xml | 41 +++++++++- .../com/imooc/springbootmybatis/GoodsDao.java | 36 +++++++++ .../com/imooc/springbootmybatis/GoodsDo.java | 60 +++++++++++++++ .../SpringBootMybatisApplication.java | 2 + .../src/main/resources/application.properties | 9 +++ .../src/main/resources/mapper/Goods.xml | 36 +++++++++ .../imooc/springbootmybatis/GoodsDaoTest.java | 77 +++++++++++++++++++ .../SpringBootMybatisApplicationTests.java | 13 ---- 9 files changed, 259 insertions(+), 17 deletions(-) create mode 100644 spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/GoodsDao.java create mode 100644 spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/GoodsDo.java create mode 100644 spring-boot-mybatis/src/main/resources/mapper/Goods.xml create mode 100644 spring-boot-mybatis/src/test/java/com/imooc/springbootmybatis/GoodsDaoTest.java delete mode 100644 spring-boot-mybatis/src/test/java/com/imooc/springbootmybatis/SpringBootMybatisApplicationTests.java diff --git a/spring-boot-jdbctemplate/src/main/resources/application.properties b/spring-boot-jdbctemplate/src/main/resources/application.properties index 871182d..653aefe 100644 --- a/spring-boot-jdbctemplate/src/main/resources/application.properties +++ b/spring-boot-jdbctemplate/src/main/resources/application.properties @@ -7,3 +7,5 @@ spring.datasource.username=root # 配置数据库密码 spring.datasource.password=Easy@0122 +# 指定MyBatis配置文件位置 +mybatis.mapper-locations=classpath:mapper/*.xml \ No newline at end of file diff --git a/spring-boot-mybatis/pom.xml b/spring-boot-mybatis/pom.xml index 54d71e3..6485a52 100644 --- a/spring-boot-mybatis/pom.xml +++ b/spring-boot-mybatis/pom.xml @@ -1,12 +1,13 @@ - 4.0.0 org.springframework.boot spring-boot-starter-parent - 2.2.6.RELEASE - + 2.2.5.RELEASE + com.imooc spring-boot-mybatis @@ -23,7 +24,39 @@ org.springframework.boot spring-boot-starter - + + + org.springframework.boot + spring-boot-devtools + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-jdbc + + + + mysql + mysql-connector-java + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.2 + + + + junit + junit + test + + org.springframework.boot spring-boot-starter-test diff --git a/spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/GoodsDao.java b/spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/GoodsDao.java new file mode 100644 index 0000000..fe0f1f0 --- /dev/null +++ b/spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/GoodsDao.java @@ -0,0 +1,36 @@ +package com.imooc.springbootmybatis; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +/** + * 商品数据库访问接口 + */ +@Repository // 标注数据访问组件 +public interface GoodsDao { + /** + * 新增商品 + */ + public int insert(GoodsDo Goods); + + /** + * 删除商品(根据id) + */ + public int delete(Long id); + + /** + * 修改商品信息(根据id修改其他属性值) + */ + public int update(GoodsDo Goods); + + /** + * 查询商品信息(根据id查询单个商品信息) + */ + public GoodsDo selectOne(Long id); + + /** + * 查询商品列表 + */ + public List selectAll(); +} diff --git a/spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/GoodsDo.java b/spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/GoodsDo.java new file mode 100644 index 0000000..f911416 --- /dev/null +++ b/spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/GoodsDo.java @@ -0,0 +1,60 @@ +package com.imooc.springbootmybatis; + +/** + * 商品类 + */ +public class GoodsDo { + /** + * 商品id + */ + private Long id; + + /** + * 商品名称 + */ + private String name; + /** + * 商品价格 + */ + private String price; + /** + * 商品图片 + */ + private String pic; + + // 省略 get set方法 + + 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 getPrice() { + return price; + } + + public void setPrice(String price) { + this.price = price; + } + + public String getPic() { + return pic; + } + + public void setPic(String pic) { + this.pic = pic; + } + + +} diff --git a/spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/SpringBootMybatisApplication.java b/spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/SpringBootMybatisApplication.java index 6780621..cb0f1f5 100644 --- a/spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/SpringBootMybatisApplication.java +++ b/spring-boot-mybatis/src/main/java/com/imooc/springbootmybatis/SpringBootMybatisApplication.java @@ -1,9 +1,11 @@ package com.imooc.springbootmybatis; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication +@MapperScan("com.imooc.springbootmybatis") // 指定MyBatis扫描的包,以便将数据访问接口注册为bean public class SpringBootMybatisApplication { public static void main(String[] args) { diff --git a/spring-boot-mybatis/src/main/resources/application.properties b/spring-boot-mybatis/src/main/resources/application.properties index 8b13789..c96367f 100644 --- a/spring-boot-mybatis/src/main/resources/application.properties +++ b/spring-boot-mybatis/src/main/resources/application.properties @@ -1 +1,10 @@ +# 配置数据库驱动 +spring.datasource.driver-class-name=com.mysql.jdbc.Driver +# 配置数据库url +spring.datasource.url=jdbc:mysql://127.0.0.1:3306/shop?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC +# 配置数据库用户名 +spring.datasource.username=root +# 配置数据库密码 +spring.datasource.password=Easy@0122 +mybatis.mapper-locations=classpath:mapper/*.xml \ No newline at end of file diff --git a/spring-boot-mybatis/src/main/resources/mapper/Goods.xml b/spring-boot-mybatis/src/main/resources/mapper/Goods.xml new file mode 100644 index 0000000..b7eb590 --- /dev/null +++ b/spring-boot-mybatis/src/main/resources/mapper/Goods.xml @@ -0,0 +1,36 @@ + + + + + + + insert into goods (name,price,pic) values (#{name},#{price},#{pic}) + + + + delete from goods where id=#{id} + + + + update goods set name=#{name},price=#{price},pic=#{pic} where id=#{id} + + + + + + + + id,name,price,pic + + + + + + + + + \ No newline at end of file diff --git a/spring-boot-mybatis/src/test/java/com/imooc/springbootmybatis/GoodsDaoTest.java b/spring-boot-mybatis/src/test/java/com/imooc/springbootmybatis/GoodsDaoTest.java new file mode 100644 index 0000000..7bcbeb5 --- /dev/null +++ b/spring-boot-mybatis/src/test/java/com/imooc/springbootmybatis/GoodsDaoTest.java @@ -0,0 +1,77 @@ +package com.imooc.springbootmybatis; + +import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.List; + +import org.junit.FixMethodOrder; +import org.junit.jupiter.api.Test; +import org.junit.runners.MethodSorters; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +/** + * GoodsDao测试类 + */ +@SpringBootTest +@FixMethodOrder(MethodSorters.NAME_ASCENDING) // 按方法名称顺序测试 +class GoodsDaoTest { + + @Autowired + private GoodsDao goodsDao; + + /** + * 新增一个商品 + */ + @Test + void test_01() { + GoodsDo goods = new GoodsDo(); + goods.setName("手机"); + goods.setPic("phone.jpg"); + goods.setPrice("2000"); + int count = goodsDao.insert(goods); + assertEquals(1, count);// count值为1则测试通过 + } + + /** + * 更新商品信息 + */ + @Test + void test_02() { + GoodsDo goods = new GoodsDo(); + goods.setId(1L); + goods.setName("手机"); + goods.setPic("phone.jpg"); + goods.setPrice("3000"); + int count = goodsDao.update(goods); + assertEquals(1, count);// count值为1则测试通过 + } + + /** + * 获取商品信息 + */ + @Test + void test_03() { + GoodsDo goods = goodsDao.selectOne(1L); + assertNotNull(goods);// goods不为null则测试通过 + } + + /** + * 删除商品 + */ + @Test + void test_04() { + int count = goodsDao.delete(1L); + assertEquals(1, count);// count值为1则测试通过 + } + + /** + * 获取商品信息列表 + */ + @Test + void test_05() { + List goodsList = goodsDao.selectAll(); + assertEquals(0, goodsList.size());// goodsList.size()值为0则测试通过 + } +} diff --git a/spring-boot-mybatis/src/test/java/com/imooc/springbootmybatis/SpringBootMybatisApplicationTests.java b/spring-boot-mybatis/src/test/java/com/imooc/springbootmybatis/SpringBootMybatisApplicationTests.java deleted file mode 100644 index 04f0337..0000000 --- a/spring-boot-mybatis/src/test/java/com/imooc/springbootmybatis/SpringBootMybatisApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.imooc.springbootmybatis; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class SpringBootMybatisApplicationTests { - - @Test - void contextLoads() { - } - -} -- GitLab