SpringBoot框架用于实战(可直接下载源码进行拓展)
步骤:
- 创建数据库mr_wen,新建两条测试数据
- 创建SpringBoot项目
- 编写代码块,并进行单元测试
创建数据库mr_wen,新建两条测试数据
-
create DATABASE mr_wen;
use mr_wen;
create table `product_category` (
`category_id` int not null auto_increment,
`category_name` varchar(64) not null ,
`category_type` int not null ,
primary key (`category_id`)
);
创建SpringBoot项目(图解)
创建项目
创建完成
编写代码块
- 检查并导入依赖(pom.xml)
-
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
- 测试项目是否可运行
- 编写application.properties(用于连接数据库)
-
Spring.dataSource.driver-class-name=com.mysql.cj.jdbc.Driver
Spring.dataSource.url=jdbc:mysql://localhost:3306/mr_wen?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false
Spring.dataSource.username=root
Spring.dataSource.password=root
Spring.jpa:shop-sql:true
-
com.example.demo目录下创建包名dataobject,并创建类ProductCategory实体类
-
package com.example.demo.dataobject;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
//需要idea安装lombok插件,也可以自行添加G/S方法,toStirng方法
@Entity
@Data
public class ProductCategory {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer categoryId;
private String categoryName;
private Integer categoryType;
}
-
com.example.demo目录下创建包名dao,并创建类ProductCategoryDao持久层
-
package com.example.demo.dao;
import com.example.demo.dataobject.ProductCategory;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProductCategoryDao extends JpaRepository<ProductCategory,Integer> {
List<ProductCategory> findByCategoryTypeIn(List<Integer> categoryTypeList);
}
- 进行测试(写完程序进行单元测试可以随时检验代码的错误)
-
package com.example.demo.dao;
import com.example.demo.dataobject.ProductCategory;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.*;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ProductCategoryDaoTest {
@Autowired
private ProductCategoryDao productCategoryDao;
/*查询*/
@Test
public void findOne(){
ProductCategory productCategory=productCategoryDao.findById(1).get();
Assert.assertNotNull(productCategory);
System.out.println("productCategory = " + productCategory);
}
/*测试新增数据*/
@Test
public void saveTest(){
ProductCategory productCategory=new ProductCategory();
productCategory.setCategoryName("最佳科技榜单");
productCategory.setCategoryType(1);
productCategoryDao.save(productCategory);
}
/*测试更新*/
@Test
public void updateTest(){
ProductCategory productCategory=new ProductCategory();
productCategory.setCategoryId(2);
productCategory.setCategoryName("科技榜单");
productCategory.setCategoryType(10);
productCategoryDao.save(productCategory);
}
@Test
public void findByCategoryTypeInTest(){
List<Integer>lists= Arrays.asList(1,2,3);
List<ProductCategory> result=productCategoryDao.findByCategoryTypeIn(lists);
Assert.assertNotEquals(0,result.size());
}
}
- com.example.demo目录下创建包名service,并service下创建impl包,接着创建类CategoryService,CategoryServiceImpl
-
package com.example.demo.service;
import com.example.demo.dataobject.ProductCategory;
import java.util.List;
public interface CategoryService {
//根据Id查询
public ProductCategory findOne(Integer caregoryId);
//查询所有
public List<ProductCategory>findAll();
//根据编号的传入查询所有匹配数据
public List<ProductCategory> findByCategoryTypeIn(List<Integer> categoryTypeList);
//更新传入数据信息进行更新
public ProductCategory save(ProductCategory productCategory);
}
-
-
package com.example.demo.service.impl;
import com.example.demo.dao.ProductCategoryDao;
import com.example.demo.dataobject.ProductCategory;
import com.example.demo.service.CategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class CategoryServiceImpl implements CategoryService {
@Autowired
private ProductCategoryDao productCategoryDao;
@Override
public ProductCategory findOne(Integer caregoryId) {
return productCategoryDao.findById(caregoryId).get();
}
@Override
public List<ProductCategory> findAll() {
return productCategoryDao.findAll();
}
@Override
public List<ProductCategory> findByCategoryTypeIn(List<Integer> categoryTypeList) {
return productCategoryDao.findByCategoryTypeIn(categoryTypeList);
}
@Override
public ProductCategory save(ProductCategory productCategory) {
return productCategoryDao.save(productCategory);
}
}
-
- 接着还是要进行必要测试
-
package com.wechat.sell.service.impl;
import com.wechat.sell.dataobject.ProductCategory;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.*;
@RunWith(SpringRunner.class)
@SpringBootTest
public class CategoryServiceImplTest {
@Autowired
private CategoryServiceImpl categoryService;
@Test
public void findOne() throws Exception{
ProductCategory productCategory=categoryService.findOne(1);
System.out.println("productCategory = " + productCategory);
Assert.assertEquals(1,new Integer(1),productCategory.getCategoryId());
}
@Test
public void findAll() throws Exception{
List<ProductCategory>productCategoryList=categoryService.findAll();
for(ProductCategory productCategory:productCategoryList){
System.out.println("================ = " + "================");
System.out.println("productCategory = " + productCategory);
}
Assert.assertNotEquals(0,productCategoryList.size());
}
@Test
public void findByCategoryTypeIn() throws Exception{
List<ProductCategory>productCategoryList=categoryService.findByCategoryTypeIn( Arrays.asList(1,2,3));
for(ProductCategory productCategory:productCategoryList){
System.out.println("================ = " + "================");
System.out.println("productCategory = " + productCategory);
}
Assert.assertNotEquals(0,productCategoryList.size());
}
@Test
public void save() throws Exception{
ProductCategory productCategory=new ProductCategory();
productCategory.setCategoryType(2);
productCategory.setCategoryName("黑科技榜单");
ProductCategory productCategory1=categoryService.save(productCategory);
System.out.println("productCategory1 = " + productCategory1);
Assert.assertNotNull(productCategory1);
}
}
-
博客提供有源码,源码中加入了Logback日志框架,源码可用于项目中套用并自行拓展
源码:源码下载
原创文章,未经允许,请勿盗用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)