VueCli+SpringBoot(后端)三

项目搭建

技术

SpringBoot、mybatis、lombok、MySQL、easyexcel、maven

目录
VueCli+SpringBoot(后端)三_第1张图片

1、所需依赖pom.xml



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.6.7
         
    
    com.jc
    MusicTest
    0.0.1-SNAPSHOT
    MusicTest
    MusicTest
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.2.2
        

        
            mysql
            mysql-connector-java
            runtime
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            com.alibaba
            easyexcel
            2.1.1
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                        
                            org.projectlombok
                            lombok
                        
                    
                
            
        
    


2、application.properties配置信息

server.port=1313

spring.datasource.url=jdbc:mysql:///music?serverTimeZone=GMT%2B8&CharacterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

mybatis.mapper-locations=classpath:/mapper/*.xml

logging.level.com.jc=debug

3、pojo

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Message implements Serializable {
    private static final long serialVersionUID = -4948906497251043325L;
    private Integer id;
    @ExcelProperty(value = "歌曲",index = 0)
    private String song;
    @ExcelProperty(value = "歌手",index = 1)
    private String name;
    @ExcelProperty(value = "性别",index = 2)
    private String sex;
    @ExcelProperty(value = "创建时间",index = 3)
    private String createTime;
}

4、mapper


@Mapper
public interface MessageMapper {

    List selectAll(@Param("pageSize") Integer pageSize,@Param("size") Integer size);

    int insertMusic(@Param("message") Message message);

    int deleteMusic(Integer id);

    int updateMusic(@Param("message") Message message);

    List selectCondition(@Param("message") Message message,@Param("pageSize") Integer pageSize,@Param("size") Integer size);

    int selectCount();

    List downloadExcel(@Param("name") String name);

    int insertExcel(@Param("message") Message message);

//    List findAll();

}

5、mapper.xml




    
        
        
        
        
        
    
    
    
        insert into message
        (song,name,sex,createtime)
        values
        (#{message.song},#{message.name},#{message.sex},#{message.createTime})
    
    
        delete from message where id=#{id};
    
    
        update message set
        song=#{message.song},name=#{message.name},sex=#{message.sex}
        where id=#{message.id}
    
    
    
    
    
        insert into message (song,name,sex,createtime)
        values
        (#{message.song},#{message.name},#{message.sex},#{message.createTime})
    



6、service

public interface MessageService {
    List selectAll(Integer pageSize,Integer size);
    int insertMusic(Message message);
    int deleteMusic(Integer id);
    int updateMusic(Message message);
    List selectCondition(Message message,Integer pageSize,Integer size);
    int selectCount();
    void downloadExcel(HttpServletResponse response,String name);
    String insertExcel(Message message);
//    void findAll(HttpServletResponse response);
}

7、serviceImpl


@Service
public class MessageServiceImpl implements MessageService {

    @Autowired
    private MessageMapper messageMapper;

    @Override
    public List selectAll(Integer pageSize, Integer size) {
        return messageMapper.selectAll(pageSize,size);
    }

    @Override
    public int insertMusic(Message message) {
        return messageMapper.insertMusic(message);
    }

    @Override
    public int deleteMusic(Integer id) {
        return messageMapper.deleteMusic(id);
    }

    @Override
    public int updateMusic(Message message) {
        return messageMapper.updateMusic(message);
    }

    @Override
    public List selectCondition(Message message,Integer pageSize,Integer size) {
        return messageMapper.selectCondition(message,pageSize,size);
    }

    @Override
    public int selectCount() {
        return messageMapper.selectCount();
    }

    @Override
    public void downloadExcel(HttpServletResponse response,String name) {
        try {
            String filename = URLEncoder.encode("MusicExcel", "utf-8");
            response.setContentType("application/vnd.ms-excel");
            response.setCharacterEncoding("utf-8");
            response.setHeader("Content-Disposition","attachment;filename=" + filename + ".xlsx");
            EasyExcel.write(response.getOutputStream(),Message.class).sheet().doWrite(data(name));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public String insertExcel(Message message) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
        simpleDateFormat.applyPattern("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        message.setCreateTime(simpleDateFormat.format(date));
        if (message.getSex().equals("男")){
            message.setSex("1");
        }else if (message.getSex().equals("女")){
            message.setSex("2");
        }else {
            return "数据存储失败,请重试!";
        }
        int i = messageMapper.insertExcel(message);
        if (i>=1){
            return "数据存储成功";
        }else {
            return "数据存储失败,请重试!";
        }

    }

//    @Override
//    public void findAll(HttpServletResponse response) {
//        try {
//            String filename = URLEncoder.encode("MusicExcel", "utf-8");
//            response.setContentType("application/vnd.ms-excel");
//            response.setCharacterEncoding("utf-8");
//            response.setHeader("Content-Disposition","attachment;filename=" + filename + ".xlsx");
//            EasyExcel.write(response.getOutputStream(),Message.class).sheet().doWrite(data());
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }
//    private List data() {
//        return messageMapper.findAll();
//    }

    private List data(String name) {
        List messages = messageMapper.downloadExcel(name);
        for (Message message:messages) {
            if (message.getSex().equals("1")){
                message.setSex("男");
            }else if (message.getSex().equals("2")){
                message.setSex("女");
            }
        }
        return messages;
    }

}

8、excelListener

public class MessageListenerExcel extends AnalysisEventListener {

    private MessageService messageService;

    public MessageListenerExcel(MessageService messageService){
        this.messageService=messageService;
    }

    @Override
    public void invoke(Message message, AnalysisContext analysisContext) {
        saveMessage(message);
    }

    private void saveMessage(Message message) {
        messageService.insertExcel(message);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        System.out.println("数据存储成功");
    }
}

9、controller


@RestController
public class MessageController {

    @Autowired
    private MessageService messageService;

    @CrossOrigin
    @GetMapping("selectAll/{pageSize}/{size}")
    public List selectAll(@PathVariable Integer pageSize,@PathVariable Integer size){
        pageSize=(pageSize-1)*size;
        return messageService.selectAll(pageSize,size);
    }

    @CrossOrigin
    @PostMapping("insertMessage")
    public String insertMessage(@RequestBody Message message){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
        simpleDateFormat.applyPattern("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        message.setCreateTime(simpleDateFormat.format(date));
        if (message.getSex().equals("男")){
            message.setSex("1");
        }else if (message.getSex().equals("女")){
            message.setSex("2");
        }else {
            return "数据错误,请重试!";
        }
        int i = messageService.insertMusic(message);
        if (i>=1){
            return "数据添加成功";
        }else {
            return "数据添加失败,请重试!";
        }
    }

    @CrossOrigin
    @DeleteMapping("deleteMessage")
    public String deleteMessage(@RequestBody Message message){
        int i = messageService.deleteMusic(message.getId());
        if (i>=1){
            return "数据删除成功";
        }else {
            return "数据删除失败,请重试!";
        }
    }

    @CrossOrigin
    @PostMapping("updateMessage")
    public String updateMessage(@RequestBody Message message){
        if(message.getSex().equals("男")){
            message.setSex("1");
        }else if (message.getSex().equals("女")){
            message.setSex("2");
        }
        int i = messageService.updateMusic(message);
        if (i>=1){
            return "数据修改成功";
        }else {
            return "数据修改失败,请重试!";
        }
    }

    @CrossOrigin
    @PostMapping("selectCondition/{pageSize}/{size}")
    public List selectCondition(@RequestBody Message message,@PathVariable Integer pageSize,@PathVariable Integer size){
        pageSize=(pageSize-1)*size;
        return messageService.selectCondition(message,pageSize,size);
    }

    @CrossOrigin
    @GetMapping("selectCount")
    public Integer selectCount(){
        return messageService.selectCount();
    }

    @CrossOrigin
    @GetMapping("downloadExcel/{name}")
    public void downloadExcel(HttpServletResponse response,@PathVariable String name){
        messageService.downloadExcel(response,name);
    }

    @CrossOrigin
    @PostMapping("uploadExcel")
    public String uploadExcel(MultipartFile file){
        try {
            EasyExcel.read(file.getInputStream(),Message.class,new MessageListenerExcel(messageService)).sheet().doRead();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "导入成功";
    }

//    @CrossOrigin
//    @GetMapping("findAll")
//    public void findAll(HttpServletResponse response){
//        messageService.findAll(response);
//    }


}

你可能感兴趣的:(javamysql)