我的项目搭建

技术

SpringBoot、mybatis、lombok、MySQL、easyexcel、maven

目录

1、所需依赖pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.6.7</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <groupId>com.jc</groupId>    <artifactId>MusicTest</artifactId>    <version>0.0.1-SNAPSHOT</version>    <name>MusicTest</name>    <description>MusicTest</description>    <properties>        <java.version>1.8</java.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</artifactId>            <version>2.2.2</version>        </dependency>        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <scope>runtime</scope>        </dependency>        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <optional>true</optional>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>easyexcel</artifactId>            <version>2.1.1</version>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <configuration>                    <excludes>                        <exclude>                            <groupId>org.projectlombok</groupId>                            <artifactId>lombok</artifactId>                        </exclude>                    </excludes>                </configuration>            </plugin>        </plugins>    </build></project>

2、application.properties配置信息

server.port=1313spring.datasource.url=jdbc:mysql:///music?serverTimeZone=GMT%2B8&CharacterEncoding=utf8spring.datasource.username=rootspring.datasource.password=rootmybatis.mapper-locations=classpath:/mapper/*.xmllogging.level.com.jc=debug

3、pojo

@Data@NoArgsConstructor@AllArgsConstructorpublic 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

@Mapperpublic interface MessageMapper {    List<Message> 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<Message> selectCondition(@Param("message") Message message,@Param("pageSize") Integer pageSize,@Param("size") Integer size);    int selectCount();    List<Message> downloadExcel(@Param("name") String name);    int insertExcel(@Param("message") Message message);//    List<Message> findAll();}

5、mapper.xml

<?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.jc.mapper.MessageMapper">    <resultMap id="Message" type="com.jc.pojo.Message">        <id property="id" column="id"></id>        <result property="song" column="song"></result>        <result property="name" column="name"></result>        <result property="sex" column="sex"></result>        <result property="createTime" column="createtime"></result>    </resultMap>    <select id="selectAll" resultMap="Message">        select id,song,name,sex,createtime from message limit #{pageSize},#{size}    </select>    <insert id="insertMusic">        insert into message        (song,name,sex,createtime)        values        (#{message.song},#{message.name},#{message.sex},#{message.createTime})    </insert>    <delete id="deleteMusic">        delete from message where id=#{id};    </delete>    <update id="updateMusic">        update message set        song=#{message.song},name=#{message.name},sex=#{message.sex}        where id=#{message.id}    </update>    <select id="selectCondition" resultMap="Message">        select id,song,name,sex,createtime from message where name like concat('%',#{message.name},'%') limit #{pageSize},#{size}    </select>    <select id="selectCount" resultType="Integer">        select count(*) from message;    </select>    <select id="downloadExcel" resultMap="Message">        select id,song,name,sex,createtime from message        <where>            <if test="name != null and name !='' ">                name like concat('%',#{name},'%')            </if><!--            <if test="pageSize != null and pageSize !='' and size !=null and size != '' ">--><!--                limit #{pageSize},#{size}--><!--            </if>-->        </where>    </select>    <insert id="insertExcel">        insert into message (song,name,sex,createtime)        values        (#{message.song},#{message.name},#{message.sex},#{message.createTime})    </insert><!--    <select id="findAll" resultMap="Message">--><!--        select * from message--><!--    </select>--></mapper>

6、service

public interface MessageService {    List<Message> selectAll(Integer pageSize,Integer size);    int insertMusic(Message message);    int deleteMusic(Integer id);    int updateMusic(Message message);    List<Message> 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

@Servicepublic class MessageServiceImpl implements MessageService {    @Autowired    private MessageMapper messageMapper;    @Override    public List<Message> 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<Message> 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<Message> data() {//        return messageMapper.findAll();//    }    private List<Message> data(String name) {        List<Message> 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<Message> {    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

@RestControllerpublic class MessageController {    @Autowired    private MessageService messageService;    @CrossOrigin    @GetMapping("selectAll/{pageSize}/{size}")    public List<Message> 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<Message> 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);//    }}