优化代码 private List<String> getConfigDataCodeByTypeCode(String typeCode) { List<CrmRdDictConfig> crmRdDictConfigs = configService.getConfigDataCodeByTypeCode(typeCode); List<String> codes = crmRdDictConfigs.stream().map(temp -> temp.getDataCode()).collect(Collectors.toList()); return codes; }
时间: 2023-05-14 12:07:30 浏览: 162
这段代码可以进行一些优化,比如可以使用lambda表达式来简化代码,如下所示:
private List<String> getConfigDataCodeByTypeCode(String typeCode) {
return configService.getConfigDataCodeByTypeCode(typeCode)
.stream()
.map(CrmRdDictConfig::getDataCode)
.collect(Collectors.toList());
}
这样可以使代码更加简洁易读。
相关问题
@Data @NoArgsConstructor @AllArgsConstructor public class ResultVO { private int code; private String msg; private Object data; } @AllArgsConstructor @NoArgsConstructor @Data public class Fruit { private int id; private String fruitName; private int num; private int price; } @Mapper @Component public interface FruitMapper { public List<Fruit> findAllFruits(); } <mapper namespace="com.example.mapper.FruitMapper"> <select id="findAllFruits" resultType="Fruit"> select * from fruit </select> </mapper> public interface FruitService { public ResultVO findAllFruits(); } @Service public class FruitServiceImpl implements FruitService { @Autowired private FruitMapper fruitMapper; @Override public ResultVO findAllFruits() { List<Fruit> fruits = fruitMapper.findAllFruits(); if(fruits == null){ return new ResultVO( 404 , "数据库为空", null); }else { return new ResultVO(200, "查找成功", fruits); } } } @RestController @CrossOrigin public class FruitController { @Autowired private FruitService fruitService; @RequestMapping("/fruit") public ResultVO findAllFruits(){ return fruitService.findAllFruits(); } }(根据我写的代码,帮我写一个完整的vue前端页面,用到vue+elementui+echarts+axios技术)
根据您提供的代码,我可以给您提供一个基本的Vue前端页面示例,使用了Vue.js、Element UI、Echarts和Axios技术。
首先,您需要确保已经安装了Vue CLI,然后通过以下步骤创建一个新的Vue项目:
1. 打开命令行工具,进入您希望创建项目的目录。
2. 运行以下命令来创建一个新的Vue项目:
```shell
vue create fruit-app
```
3. 在创建过程中,您可以选择手动配置并选择需要的特性,或者直接使用默认配置。
4. 进入新创建的项目目录:
```shell
cd fruit-app
```
5. 安装所需的依赖包:
```shell
npm install element-ui echarts axios
```
6. 创建并编辑一个新的组件文件`FruitList.vue`,用于展示水果列表:
```vue
<template>
<div>
<el-table :data="fruits" style="width: 100%">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="fruitName" label="水果名称"></el-table-column>
<el-table-column prop="num" label="数量"></el-table-column>
<el-table-column prop="price" label="价格"></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: 'FruitList',
props: {
fruits: {
type: Array,
default: () => []
}
}
}
</script>
<style>
/* 根据您的需求自定义样式 */
</style>
```
7. 创建并编辑一个新的页面文件`FruitPage.vue`,用于展示完整的水果页面:
```vue
<template>
<div>
<el-button type="primary" @click="fetchFruits">获取水果列表</el-button>
<fruit-list :fruits="fruits"></fruit-list>
<div ref="chart" style="width: 600px; height: 400px;"></div>
</div>
</template>
<script>
import axios from 'axios'
import FruitList from './FruitList.vue'
import echarts from 'echarts'
export default {
name: 'FruitPage',
components: {
FruitList
},
data() {
return {
fruits: []
}
},
methods: {
fetchFruits() {
axios.get('/fruit')
.then(response => {
this.fruits = response.data.data
this.renderChart()
})
.catch(error => {
console.error(error)
})
},
renderChart() {
const chart = echarts.init(this.$refs.chart)
const data = this.fruits.map(fruit => ({
name: fruit.fruitName,
value: fruit.num
}))
const option = {
title: {
text: '水果数量统计'
},
tooltip: {},
series: [{
type: 'pie',
data
}]
}
chart.setOption(option)
}
}
}
</script>
<style>
/* 根据您的需求自定义样式 */
</style>
```
8. 在`src/App.vue`中,使用`FruitPage`组件作为根组件:
```vue
<template>
<div id="app">
<fruit-page></fruit-page>
</div>
</template>
<script>
import FruitPage from './FruitPage.vue'
export default {
name: 'App',
components: {
FruitPage
}
}
</script>
<style>
/* 根据您的需求自定义样式 */
</style>
```
9. 修改`src/main.js`,确保引入了Element UI和Axios,并将`App.vue`作为根组件:
```javascript
import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)
Vue.config.productionTip = false
new Vue({
render: h => h(App)
}).$mount('#app')
```
10. 运行以下命令启动开发服务器:
```shell
npm run serve
```
11. 打开浏览器,访问`http://localhost:8080`即可看到水果页面。
请注意,上述示例代码仅提供了一个基本的前端页面,您可能需要根据实际需求进行进一步的修改和定制。
mybatis-plus代码生成器
Mybatis-plus代码生成器是一个快速生成Mybatis-plus代码的工具,它可以根据数据库表自动生成实体类、Mapper接口、Service接口、Controller接口等代码,可以大大提高开发效率。
使用Mybatis-plus代码生成器需要先引入相关依赖:
```
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
```
接下来,需要编写一个代码生成器的配置类,示例代码如下:
```
package com.example.demo.generator;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.config.rules.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.TableInfoHelper;
import java.util.ArrayList;
import java.util.List;
public class CodeGenerator {
public static void main(String[] args) {
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig.Builder("jdbc:mysql://localhost:3306/demo", "root", "123456")
.driverName("com.mysql.jdbc.Driver")
.dbType(DbType.MYSQL)
.build();
// 全局配置
GlobalConfig gc = new GlobalConfig.Builder()
.outputDir("D:\\code\\demo\\src\\main\\java")
.author("example")
.openDir(false)
.fileOverride(true)
.serviceName("%sService")
.build();
// 包配置
PackageConfig pc = new PackageConfig.Builder()
.parent("com.example.demo")
.moduleName("")
.build();
// 策略配置
StrategyConfig sc = new StrategyConfig.Builder()
.addTablePrefix("t_")
.addIncludeTables("user")
.entityBuilder()
.naming(NamingStrategy.underline_to_camel)
.columnNaming(NamingStrategy.underline_to_camel)
.tableFillList(getTableFills())
.idType(IdType.AUTO)
.build();
// 代码生成器
AutoGenerator mpg = new AutoGenerator.Builder()
.globalConfig(gc)
.dataSource(dsc)
.packageConfig(pc)
.strategy(sc)
.build();
// 执行生成代码
mpg.execute();
}
// 自动填充配置
private static List<TableFill> getTableFills() {
List<TableFill> tableFills = new ArrayList<>();
tableFills.add(new TableFill("create_time", TableFill.INSERT));
tableFills.add(new TableFill("update_time", TableFill.UPDATE));
return tableFills;
}
}
```
在配置类中,需要配置数据源、全局配置、包配置和策略配置等信息。其中,策略配置是比较重要的部分,可以通过这个配置来指定需要生成代码的表、指定表前缀、指定实体类的命名规则等。
配置好之后,执行main方法即可生成代码。生成的代码默认放在指定的包路径下,包括实体类、Mapper接口、Service接口、Controller接口等。其中,实体类会自动添加@TableId和@TableName注解,Mapper接口会继承BaseMapper接口,Service接口和Controller接口需要手动实现。
总之,Mybatis-plus代码生成器是一个非常实用的工具,可以大大提高开发效率。
阅读全文