此功能是在**实现基础的增删改查后的功能**,实现基础的增删改功能模块详见主页专栏《SpringBoot+Vue大学生毕业设计之医务室管理系统》
Mapper持久层
/**
* 药品的模糊查询
*/
List<Drugs> queryDrugByName(String drugname);
Service业务逻辑层
Service interface
/**
* 药品的模糊查询
*/
List<Drugs> queryDrugByName(String drugname);
Service Impl
@Override
public List<Drugs> queryDrugByName(String drugname) {
return mapper.queryDrugByName(drugname);
}
DrugsMapper.xml SQL映射文件
<select id="queryDrugByName" resultType="Drugs">
SELECT DID, DNAME, DBRAND, DPRODUCT, DCREATE, DENDTIME, DPRICE, STOCK, USED, ADDIN, ADDSTAFF, DFROM
FROM drugs
WHERE dname LIKE CONCAT('%', #{drugname}, '%')
</select>
注意:
CONCAT('%', #{drugname}, '%')
是SQL语句中的一个函数,用于将多个字符串连接起来。在这个例子中,它将百分号(%)和传入的参数#{drugname}
以及另一个百分号(%)连接在一起。这样做的目的是在查询时,实现模糊匹配的效果。
具体来说,LIKE
关键字后面跟的是一个模糊匹配的模式,用于匹配数据库中的记录。在这个例子中,模式是CONCAT('%', #{drugname}, '%')
,表示匹配以#{drugname}
开头和结尾的任意字符。这样,无论#{drugname}
出现在字段值的哪个位置,都可以被匹配到。
Controller控制类
@GetMapping("/select/{drugname}")
public R queryDrugsList(@PathVariable String drugname) {
return R.OK().setData(service.queryDrugByName(drugname));
}
接口测试
测试通过!
--------------------------------------------------------------------------------------------------------------------------------
前端Vue代码:
<template>
<el-col :span="12">
<el-form-item prop="drugname">
<el-input placeholder="输入药品名称" v-model="Dform.drugname"></el-input>
</el-form-item>
</el-col>
<el-col :span="2">
<el-form-item>
<el-button type="success" @click="SelectDrugs">查询</el-button>
</el-form-item>
</el-col>
data
data() {
return {
Dform: {
drugname: '',
},
DrugsList: [],
}
},
method
methods: {
SelectDrugs() {
queryDrugByName(this.Dform.drugname).then(res => {
this.DrugsList = res.data.data
})
}
}
drugs.js
export function queryDrugByName(drugname) {
return request({
url: 'drugs/select/'+drugname,
method: 'get',
})
}