工作需要读取kafka的数据量写到mysql,之后再写个接口对接前端,就需要把数据返回给前端,不是很会写,纯靠百度战士。
直接上代码
以上都是这个接口的类,一个个来吧
常量说明
public class Constants {
public static String CODE_OK="200";
public static String MSG_OK="成功";
public static String CODE_EXCEPTION="400";
public static String CODE_ERROR="500";
}
swagger 插件配置
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
.select()
// 写自己的包名
.apis(RequestHandlerSelectors.basePackage("com.xxxx.backdemo.controller"))
.paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
// 具体要干啥事 都可以写上去
.title("xxx")
.description("xxx")
.version("1.0")
.build();
}
}
实体类,返回数据用
@ApiModel(description = "查询门架系统数据")
@Data
public class MjxtBean {
// 给值,如果没有 就给个默认值,根据需求来的
@ApiModelProperty(value = "xxxx",name = "company_name",required = true,example = "xxx")
private String company_name;
// 具体根据需要来添加实体类,不在一一展示
}
数据封装实体类 setget方法加个@Data注解就可以了
@Data
@ApiModel(description = "返回结果")
public class DataResult {
@ApiModelProperty(value = "编码", required = true, example = "200")
public String code;
@ApiModelProperty(value = "返回信息", required = true, example = "成功")
public String msg;
@ApiModelProperty(value = "异常信息", required = true, example = "null")
public String exception;
@ApiModelProperty(value = "数据详情", required = true, example = "{"total":0,"rows":[{},{}]}")
public Object data;
}
service层
@Service
public interface IMjxtService {
void mjxtQuery(DataResult dataResult, String tableName);
void mjxtQuerys(DataResult dataResult, MjxtBean mjxtBean);
}
impl实现类
@Service
public class MjxtServiceImpl implements IMjxtService {
private static Logger logger = LoggerFactory.getLogger(MjxtServiceImpl.class);
@Resource
private MjxtQueryMapper mjxtQueryMapper;
@Override
public void mjxtQuery(DataResult dataResult, String tableName) {
List
controller层 根据需求改动,单参数,或者对象参数
@Api(tags = "门架系统接口")
@RestController
@RequestMapping(value = "/back/mjxt")
public class MjxtController {
private static Logger logger = LoggerFactory.getLogger(MjxtController.class);
@Resource
private MjxtServiceImpl mjxtService;
@ApiOperation(value = "单参数查询门架系统", notes = "采用mjxtQuery查询表")
@GetMapping(value = "/mjxtQuery")
public DataResult mjxtQuery( @ApiParam(value = "tablename", required = true,defaultValue = "t_kafka_hour_count") @RequestParam String tableName) {
DataResult dataResult = new DataResult();
try {
dataResult.setCode(Constants.CODE_OK);
dataResult.setMsg(Constants.MSG_OK);
mjxtService.mjxtQuery(dataResult,tableName);
} catch (Exception e) {
logger.error("xxx", e);
dataResult.setCode(Constants.CODE_EXCEPTION);
dataResult.setMsg(e.toString());
} finally {
return dataResult;
}
}
@ApiOperation(value = "多参数查询门架系统",notes = "采用mjxtQuerys查询表")
// @GetMapping(value = "/mjxtQuerys")
@PostMapping(value = "mjxtQuerys")
public DataResult mjxtQuerys(@RequestBody MjxtBean mjxtBean){
DataResult dataResult = new DataResult();
try {
dataResult.setCode(Constants.CODE_OK);
dataResult.setMsg(Constants.MSG_OK);
mjxtService.mjxtQuerys(dataResult,mjxtBean);
} catch (Exception e) {
logger.error("xxx", e);
dataResult.setCode(Constants.CODE_EXCEPTION);
dataResult.setMsg(e.toString());
} finally {
return dataResult;
}
}
}
mapper层,对应mybatis的配置
@Mapper
public interface MjxtQueryMapper {
List> selectMjxt(@Param("tableName") String tableName);
List> selectMjxts(@Param("MjxtBean") MjxtBean mjxtBean);
}
剩下的就是配置了
mybatis的xml配置
// 写mapper的具体类名
然后这个sql语句,如果是对象传参就是对象.参数,然后都是#符号,表名是$符号,如果参数是中文的 推荐用like模糊查询,concat('%',#{对象.参数},'%')
application.properties
server.port=18312 spring.datasource.url=jdbc:mysql://数据库:3306/jgkj?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=密码 spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver spring.datasource.maxIdleTime=1800 spring.datasource.connectionTestQuery=select 1 spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false // mapper实体类所在的包 mybatis.type-aliases-package=com.xxx.xxx.xxx // 扫描包下面所有的xml文件 mybatis.mapper-locations = classpath:mapper/*.xml logging.config=classpath:logback.xml
大概就是这样
返回的结果,大概就是这样吧。



