一、快速创建springBoot项目
创建完成后,记住一定要再setting中修改自己下载的Maven!!!
二、数据库
CREATE TABLE `idioms` (
`ID` double DEFAULT NULL,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`spell` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`derivation` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`samples` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
INSERT INTO `idioms` VALUES (1, '陂湖禀量', 'bēi hú bǐng liáng', '比喻度量宽广恢弘。', '《后汉书·黄宪传》:“叔度汪汪若千顷陂,澄之不清,淆之不浊,不可量也。”', NULL);
INSERT INTO `idioms` VALUES (2, '北道主人', 'běi dào zhǔ rén', '北道上接待过客的主人。与“东道主人”同义。', '《后汉书·邓晨传》:“更始北都洛阳,以晨为常山太守。会王郎反,光武自蓟走信都,晨亦间行会于巨鹿下,自请从击邯郸。光武曰:‘伟卿(邓晨)以一从我,不如以一郡为我北道主人。’”', NULL);
INSERT INTO `idioms` VALUES (3, '备而不用', 'bèi ér bù yòng', '准备好了,以备急用,眼下暂存不用。', '清·吴趼人《糊涂世界》:“虽说备而不用,到得那时候,听凭兵丁造一句谣言,开上几排枪,那人可就死了不少。”', '凡是零星物件,本地买不出,一定要用,或是~的,也都齐全。(清·颐琐《黄绣球》第十七回)');
INSERT INTO `idioms` VALUES (4, '贝阙珠宫', 'bèi què zhū gōng', '用珍珠宝贝做的宫殿。形容房屋华丽。', '战国·楚·屈原《九歌·河伯》:“鱼鳞屋兮龙堂,紫贝阙兮朱宫。”', '你看那香焚宝鼎,紫雾漾漾,玉楼金殿,~,便如天宫之景也。(明·无名氏《庆长生》第四折)');
INSERT INTO `idioms` VALUES (5, '笔诛墨伐', 'bǐ zhū mò fá', '笔、墨:指文字。诛:谴责。伐:声讨。通过文字加以谴责,进行声讨。', NULL, NULL);
三、编写代码配置项目
三/1.编写application.yml
(这里我将自带的application.properties改成了application.yml)
# 应用服务 WEB 访问端口
server:
port: 8087
#下面这些内容是为了让MyBatis映射
#指定Mybatis的Mapper文件
mybatis:
mapper-locations: classpath:mapper/*.xml
#指定Mybatis的实体目录
type-aliases-package: com.clk.demo05.mybatis.entity
#spring相关配置
spring:
datasource:
#注意空格 username:[空格]root
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/idiom_dict?serverTimezone=GMT%2b8
username: dict
password: 123456
三/2.编写实体Idioms.java
package com.clk.demo05.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Idioms {
private double id;
private String name;
private String spell;
private String content;
private String derivation;
private String samples;
}
三/3.mapper接口类IdiomsMapper.java
package com.clk.demo05.mapper;
import com.clk.demo05.entity.Idioms;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface IdiomsMapper {
Idioms getAllIdioms(@Param("name") String name);
}
三/4.mapper实现类IdiomsMapper.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.clk.demo05.mapper.IdiomsMapper">
<select id="getAllIdioms" parameterType="string" resultType="com.clk.demo05.entity.Idioms">
-- 这里由于数据库中存在重复的成语,因此就对其进行分组而达到去重的效果
select * from idioms where `name` like #{name} group by name
</select>
</mapper>
三/5.service服务类IdiomService.java
package com.clk.demo05.service;
import com.clk.demo05.entity.Idioms;
import com.clk.demo05.mapper.IdiomsMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IdiomsService {
@Autowired
private IdiomsMapper idiomsMapper;
public Idioms getAllIdioms(String name){
return idiomsMapper.getAllIdioms(name);
}
}
三/6.controller控制类IdiomsController.java
package com.clk.demo05.controller;
import com.clk.demo05.entity.Idioms;
import com.clk.demo05.service.IdiomsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/idioms")
public class IdiomsController {
@Autowired
public IdiomsService idiomsService;
@GetMapping("/wordQuery")
public Idioms getAllIdioms(@RequestParam String name){
return idiomsService.getAllIdioms(name);
}
}
最后的结构: