springboot+jdbcTemplate+sqlite编程示例——以沪深300成分股数据处理为例

引言

我们在自己做一些小的项目或者小的数据处理分析的时候,很多时候是不需要用到mysql这样的大型数据库,并且也不需要用到maven这样很重的框架的,取而代之可以使用jdbcTemplate+sqlite这样的组合。

本文就介绍一下使用springboot+jdbcTemplate+sqlite编程的方法,本文会以处理沪深300成分股数据为例。

数据源

首先介绍一下本文进行数据处理的结果,我们最后会获得沪深300成分股列表,包括每一只股票的代码,名称,所述行业以及权重,最后处理的结果如下图所示

我们的数据源主要来自中证指数官网,有两个数据源,分别是沪深300权重列表和行业分类表

沪深300指数-中证指数有限公司 (csindex.com.cn)

行业分类查询-中证指数有限公司 (csindex.com.cn) 

综合这两张表就可得到沪深300成分股的权重占比以及所属行业信息了

数据库初始化

本文使用的sqlite数据库可以说是一个嵌入式数据库,几乎没有依赖,我们只需要在项目中引入sqlite-jdbc就行了

        <dependency>
			<groupId>org.xerial</groupId>
			<artifactId>sqlite-jdbc</artifactId>
			<version>3.36.0</version>
		</dependency>

当我们引入sqlite-jdbc之后,可以在依赖包中看到数据库实例,我们不需要自己再去安装数据库

这个数据库的所有信息都会保存在一个db文件里,我们可以在项目的资源目录中创建这个db文件

 

然后在application.properties配置文件中指定该db文件,由于数据库是本地的,所以连用户名和密码都不用,不过在性能上好像会比mysql慢一点,不过这么方便,而且几乎没有依赖的数据库还要什么自行车呢,对于自己做一些小玩具完全是够用了。

spring.datasource.url=jdbc:sqlite:file:src/main/resources/database.db

数据处理

我们进行数据处理的时候主要是处理excel信息,这里会用到hutool工具包以及poi,需要引入如下依赖

        <dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
			<version>5.0.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>5.0.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml-full</artifactId>
			<version>5.0.0</version>
		</dependency>

		<dependency>
			<groupId>cn.hutool</groupId>
			<artifactId>hutool-all</artifactId>
			<version>5.7.15</version>
		</dependency>

我们主要获取以下几个维度的数据

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CSI300Entity {
    private Integer id;
    private String code;
    private String name;
    private String industry;
    private Double weight;
}

 我们把所有的数据处理都写到一个类里,包括创建表,插入数据和查询所有数据

@Slf4j
@Repository
public class SQLIteCSI300Dao implements CSI300Dao{

    private final String tableName = "csi_300";

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public void createTableIfNotExist() {
        Integer count = jdbcTemplate.queryForObject("SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=?", Integer.class, tableName);
        if (count == 0) {
            String sql = "create table " + tableName + "(" +
                    "id INTEGER PRIMARY KEY AUTOINCREMENT," +
                    "code VARCHAR(20)," +
                    "name VARCHAR(20)," +
                    "industry VARCHAR(20)," +
                    "weight float)";
            jdbcTemplate.execute(sql);
            log.info(tableName + "建表成功");
        } else {
            log.info(tableName + "表已经存在,无需创建");
        }
    }

    @Override
    public int insertOneItem(CSI300Entity entity) {
        String sql = "INSERT INTO " + tableName +
                "(code, name, industry, weight) VALUES " +
                "(?, ?, ?, ?)";
        Object[] params = new Object[] {
            entity.getCode(),
            entity.getName(),
            entity.getIndustry(),
            entity.getWeight()
        };
        int num = jdbcTemplate.update(sql, params);
        StringBuilder sb = new StringBuilder();
        sb.append("执行" + sql);
        sb.append("=>[");
        for (int i=0; i<params.length; i++) {
            sb.append(params[i].toString());
            if (i != params.length-1) {
                sb.append(", ");
            }
        }
        sb.append("]");
        if(num == 0) {
            log.error(sb.toString() + "失败");
        } else {
            log.info(sb.toString() + "成功");
        }
        return num;
    }

    @Override
    public List<CSI300Entity> queryAllItems() {
        String sql = "SELECT * FROM " + tableName;
        List<CSI300Entity> csi300Entities = jdbcTemplate.query(sql, new Object[]{}, new BeanPropertyRowMapper<CSI300Entity>(CSI300Entity.class));
        return csi300Entities;
    }
}

然后是解析excel表格汇总数据

@Slf4j
@Service
public class CSI300Service {
    private final String FILE_PATH_WEIGHT = "E:/数据可视化工具/data_cat/数据/000300closeweight.xls";
    private final String FILE_PATH_INDUSTRY = "E:/数据可视化工具/data_cat/数据/行业分类.xlsx";
    private List<CSI300Entity> csi300EntityList;

    @Autowired
    private SQLIteCSI300Dao sqlIteCSI300Dao;

    // 通过解析excel获取信息
    public void parseExcel() {
        ExcelReader excelReader = ExcelUtil.getReader(FILE_PATH_WEIGHT);
        excelReader.addHeaderAlias("成份券代码Constituent Code", "code");
        excelReader.addHeaderAlias("成份券名称Constituent Name", "name");
        excelReader.addHeaderAlias("权重(%)weight", "weight");
        csi300EntityList = excelReader.readAll(CSI300Entity.class);
        log.info("成功解析出" + csi300EntityList.size() + "条数据");
        log.info("开始解析所属行业");
        excelReader = ExcelUtil.getReader(FILE_PATH_INDUSTRY);
        excelReader.addHeaderAlias("证券代码", "code");
        excelReader.addHeaderAlias("证监会行业门类简称", "industry");
        List<CSI300Entity> csi300Entities = excelReader.readAll(CSI300Entity.class);
        for(int i=0; i<csi300Entities.size(); i++) {
            for(int j=0; j<csi300EntityList.size(); j++) {
                if (csi300EntityList.get(j).getCode().equals(csi300Entities.get(i).getCode())) {
                    csi300EntityList.get(j).setIndustry(csi300Entities.get(i).getIndustry());
                }
            }
        }
        for(int i=0; i<csi300EntityList.size(); i++) {
            log.info(csi300EntityList.get(i).toString());
            sqlIteCSI300Dao.insertOneItem(csi300EntityList.get(i));
        }
    }

}

最后看一下控制层,在编写控制层的时候加上@CrossOrigin表示这个类的所有接口都是允许跨域请求的

@Controller
@CrossOrigin
public class CSI300Controller {

    @Autowired
    private SQLIteCSI300Dao sqlIteCSI300Dao;
    @Autowired
    private CSI300Service csi300Service;

    @RequestMapping("/createTable")
    @ResponseBody
    public String createTable() {
        sqlIteCSI300Dao.createTableIfNotExist();
        return "success";
    }

    @RequestMapping("/parse")
    @ResponseBody
    public String parse() {
        csi300Service.parseExcel();
        return "success";
    }

    @RequestMapping("/queryAll")
    @ResponseBody
    public String queryAll() {
        List<CSI300Entity> csi300Entities = sqlIteCSI300Dao.queryAllItems();
        return JSON.toJSONString(csi300Entities);
    }
}

由于数据量不大,这里就将所有的数据展示出来,大家有需要可以自取

"1","000001","平安银行","金融业","0.545"
"2","000002","万科A","房地产业","0.452"
"3","000063","中兴通讯","制造业","0.474"
"4","000069","华侨城A","房地产业","0.082"
"5","000100","TCL科技","制造业","0.365"
"6","000157","中联重科","制造业","0.186"
"7","000166","申万宏源","金融业","0.236"
"8","000301","东方盛虹","制造业","0.155"
"9","000333","美的集团","制造业","1.474"
"10","000338","潍柴动力","制造业","0.469"
"11","000408","藏格矿业","制造业","0.11"
"12","000425","徐工机械","制造业","0.152"
"13","000538","云南白药","制造业","0.21"
"14","000568","泸州老窖","制造业","0.886"
"15","000596","古井贡酒","制造业","0.245"
"16","000617","中油资本","金融业","0.084"
"17","000625","长安汽车","制造业","0.588"
"18","000651","格力电器","制造业","0.862"
"19","000661","长春高新","制造业","0.302"
"20","000708","中信特钢","制造业","0.084"
"21","000723","美锦能源","制造业","0.109"
"22","000725","京东方A","制造业","0.842"
"23","000733","振华科技","制造业","0.145"
"24","000768","中航西飞","制造业","0.177"
"25","000776","广发证券","金融业","0.248"
"26","000786","北新建材","制造业","0.137"
"27","000792","盐湖股份","制造业","0.5"
"28","000800","一汽解放","制造业","0.053"
"29","000858","五 粮 液","制造业","1.68"
"30","000876","新 希 望","制造业","0.132"
"31","000877","天山股份","制造业","0.07"
"32","000895","双汇发展","制造业","0.157"
"33","000938","紫光股份","制造业","0.268"
"34","000963","华东医药","批发和零售业","0.208"
"35","000977","浪潮信息","制造业","0.211"
"36","000983","山西焦煤","采矿业","0.128"
"37","001289","龙源电力","电力、热力、燃气及水的生产和供应业","0.017"
"38","001979","招商蛇口","房地产业","0.219"
"39","002001","新和成","制造业","0.183"
"40","002007","华兰生物","制造业","0.154"
"41","002027","分众传媒","租赁和商务服务业","0.384"
"42","002049","紫光国微","制造业","0.286"
"43","002050","三花智控","制造业","0.362"
"44","002064","华峰化学","制造业","0.079"
"45","002074","国轩高科","制造业","0.137"
"46","002120","韵达股份","交通运输、仓储和邮政业","0.072"
"47","002129","TCL中环","制造业","0.313"
"48","002142","宁波银行","金融业","0.527"
"49","002179","中航光电","制造业","0.293"
"50","002180","纳思达","制造业","0.159"
"51","002202","金风科技","制造业","0.139"
"52","002230","科大讯飞","信息传输、软件和信息技术服务业","0.481"
"53","002236","大华股份","制造业","0.187"
"54","002241","歌尔股份","制造业","0.25"
"55","002252","上海莱士","制造业","0.218"
"56","002271","东方雨虹","制造业","0.252"
"57","002304","洋河股份","制造业","0.408"
"58","002311","海大集团","制造业","0.213"
"59","002352","顺丰控股","交通运输、仓储和邮政业","0.6"
"60","002371","北方华创","制造业","0.36"
"61","002410","广联达","信息传输、软件和信息技术服务业","0.151"
"62","002414","高德红外","制造业","0.077"
"63","002415","海康威视","制造业","0.945"
"64","002459","晶澳科技","制造业","0.191"
"65","002460","赣锋锂业","制造业","0.255"
"66","002466","天齐锂业","制造业","0.301"
"67","002475","立讯精密","制造业","0.922"
"68","002493","荣盛石化","制造业","0.19"
"69","002555","三七互娱","信息传输、软件和信息技术服务业","0.2"
"70","002594","比亚迪","制造业","1.048"
"71","002601","龙佰集团","制造业","0.144"
"72","002648","卫星化学","制造业","0.156"
"73","002709","天赐材料","制造业","0.162"
"74","002714","牧原股份","农、林、牧、渔业","0.62"
"75","002736","国信证券","金融业","0.159"
"76","002756","永兴材料","制造业","0.083"
"77","002812","恩捷股份","制造业","0.2"
"78","002821","凯莱英","制造业","0.2"
"79","002841","视源股份","制造业","0.111"
"80","002916","深南电路","制造业","0.087"
"81","002920","德赛西威","制造业","0.209"
"82","002938","鹏鼎控股","制造业","0.087"
"83","003816","中国广核","电力、热力、燃气及水的生产和供应业","0.138"
"84","300014","亿纬锂能","制造业","0.301"
"85","300015","爱尔眼科","卫生和社会工作业","0.462"
"86","300033","同花顺","金融业","0.175"
"87","300059","东方财富","金融业","1.078"
"88","300122","智飞生物","制造业","0.454"
"89","300124","汇川技术","制造业","0.714"
"90","300142","沃森生物","制造业","0.231"
"91","300207","欣旺达","制造业","0.132"
"92","300223","北京君正","制造业","0.095"
"93","300274","阳光电源","制造业","0.502"
"94","300316","晶盛机电","制造业","0.164"
"95","300347","泰格医药","科学研究和技术服务业","0.189"
"96","300408","三环集团","制造业","0.228"
"97","300413","芒果超媒","文化、体育和娱乐业","0.112"
"98","300433","蓝思科技","制造业","0.151"
"99","300450","先导智能","制造业","0.166"
"100","300454","深信服","信息传输、软件和信息技术服务业","0.123"
"101","300496","中科创达","信息传输、软件和信息技术服务业","0.149"
"102","300498","温氏股份","农、林、牧、渔业","0.586"
"103","300601","康泰生物","制造业","0.125"
"104","300628","亿联网络","制造业","0.094"
"105","300661","圣邦股份","制造业","0.17"
"106","300750","宁德时代","制造业","2.557"
"107","300751","迈为股份","制造业","0.087"
"108","300759","康龙化成","科学研究和技术服务业","0.173"
"109","300760","迈瑞医疗","制造业","0.819"
"110","300763","锦浪科技","制造业","0.077"
"111","300769","德方纳米","制造业","0.084"
"112","300782","卓胜微","制造业","0.3"
"113","300896","爱美客","制造业","0.191"
"114","300919","中伟股份","制造业","0.077"
"115","300957","贝泰妮","制造业","0.053"
"116","300979","华利集团","制造业","0.042"
"117","300999","金龙鱼","制造业","0.121"
"118","600000","浦发银行","金融业","0.467"
"119","600009","上海机场","交通运输、仓储和邮政业","0.259"
"120","600010","包钢股份","制造业","0.202"
"121","600011","华能国际","电力、热力、燃气及水的生产和供应业","0.197"
"122","600015","华夏银行","金融业","0.214"
"123","600016","民生银行","金融业","0.555"
"124","600018","上港集团","交通运输、仓储和邮政业","0.082"
"125","600019","宝钢股份","制造业","0.321"
"126","600025","华能水电","电力、热力、燃气及水的生产和供应业","0.087"
"127","600028","中国石化","采矿业","0.604"
"128","600029","南方航空","交通运输、仓储和邮政业","0.192"
"129","600030","中信证券","金融业","1.215"
"130","600031","三一重工","制造业","0.471"
"131","600036","招商银行","金融业","2.068"
"132","600039","四川路桥","建筑业","0.117"
"133","600048","保利发展","房地产业","0.428"
"134","600050","中国联通","信息传输、软件和信息技术服务业","0.486"
"135","600061","国投资本","金融业","0.103"
"136","600085","同仁堂","制造业","0.212"
"137","600089","特变电工","制造业","0.408"
"138","600104","上汽集团","制造业","0.404"
"139","600111","北方稀土","制造业","0.291"
"140","600115","中国东航","交通运输、仓储和邮政业","0.167"
"141","600132","重庆啤酒","制造业","0.1"
"142","600150","中国船舶","制造业","0.359"
"143","600176","中国巨石","制造业","0.154"
"144","600183","生益科技","制造业","0.116"
"145","600188","兖矿能源","采矿业","0.164"
"146","600196","复星医药","制造业","0.206"
"147","600219","南山铝业","制造业","0.117"
"148","600233","圆通速递","交通运输、仓储和邮政业","0.131"
"149","600276","恒瑞医药","制造业","1.245"
"150","600309","万华化学","制造业","0.882"
"151","600332","白云山","制造业","0.123"
"152","600346","恒力石化","制造业","0.172"
"153","600362","江西铜业","制造业","0.107"
"154","600383","金地集团","房地产业","0.094"
"155","600406","国电南瑞","信息传输、软件和信息技术服务业","0.513"
"156","600426","华鲁恒升","制造业","0.258"
"157","600436","片仔癀","制造业","0.443"
"158","600438","通威股份","制造业","0.384"
"159","600460","士兰微","制造业","0.119"
"160","600519","贵州茅台","制造业","6.531"
"161","600547","山东黄金","采矿业","0.243"
"162","600570","恒生电子","信息传输、软件和信息技术服务业","0.265"
"163","600584","长电科技","制造业","0.252"
"164","600585","海螺水泥","制造业","0.32"
"165","600588","用友网络","信息传输、软件和信息技术服务业","0.2"
"166","600600","青岛啤酒","制造业","0.153"
"167","600606","绿地控股","建筑业","0.06"
"168","600660","福耀玻璃","制造业","0.35"
"169","600674","川投能源","电力、热力、燃气及水的生产和供应业","0.185"
"170","600690","海尔智家","制造业","0.486"
"171","600732","爱旭股份","制造业","0.103"
"172","600741","华域汽车","制造业","0.159"
"173","600745","闻泰科技","制造业","0.244"
"174","600754","锦江酒店","住宿和餐饮业","0.09"
"175","600760","中航沈飞","制造业","0.269"
"176","600763","通策医疗","卫生和社会工作业","0.107"
"177","600795","国电电力","电力、热力、燃气及水的生产和供应业","0.204"
"178","600803","新奥股份","电力、热力、燃气及水的生产和供应业","0.086"
"179","600809","山西汾酒","制造业","0.677"
"180","600837","海通证券","金融业","0.545"
"181","600845","宝信软件","信息传输、软件和信息技术服务业","0.175"
"182","600875","东方电气","制造业","0.094"
"183","600884","杉杉股份","制造业","0.088"
"184","600886","国投电力","电力、热力、燃气及水的生产和供应业","0.215"
"185","600887","伊利股份","制造业","1.007"
"186","600893","航发动力","制造业","0.278"
"187","600900","长江电力","电力、热力、燃气及水的生产和供应业","1.297"
"188","600905","三峡能源","电力、热力、燃气及水的生产和供应业","0.382"
"189","600918","中泰证券","金融业","0.116"
"190","600919","江苏银行","金融业","0.553"
"191","600926","杭州银行","金融业","0.171"
"192","600941","中国移动","信息传输、软件和信息技术服务业","0.477"
"193","600958","东方证券","金融业","0.264"
"194","600989","宝丰能源","制造业","0.187"
"195","600999","招商证券","金融业","0.303"
"196","601006","大秦铁路","交通运输、仓储和邮政业","0.251"
"197","601009","南京银行","金融业","0.217"
"198","601012","隆基绿能","制造业","0.747"
"199","601021","春秋航空","交通运输、仓储和邮政业","0.121"
"200","601066","中信建投","金融业","0.194"
"201","601088","中国神华","采矿业","0.603"
"202","601100","恒立液压","制造业","0.175"
"203","601111","中国国航","交通运输、仓储和邮政业","0.164"
"204","601117","中国化学","建筑业","0.141"
"205","601138","工业富联","制造业","0.348"
"206","601155","新城控股","房地产业","0.067"
"207","601166","兴业银行","金融业","1.232"
"208","601169","北京银行","金融业","0.389"
"209","601186","中国铁建","建筑业","0.203"
"210","601211","国泰君安","金融业","0.395"
"211","601216","君正集团","制造业","0.076"
"212","601225","陕西煤业","采矿业","0.438"
"213","601229","上海银行","金融业","0.34"
"214","601236","红塔证券","金融业","0.043"
"215","601238","广汽集团","制造业","0.128"
"216","601288","农业银行","金融业","0.678"
"217","601318","中国平安","金融业","2.565"
"218","601319","中国人保","金融业","0.094"
"219","601328","交通银行","金融业","0.931"
"220","601336","新华保险","金融业","0.151"
"221","601360","三六零","信息传输、软件和信息技术服务业","0.18"
"222","601377","兴业证券","金融业","0.244"
"223","601390","中国中铁","建筑业","0.336"
"224","601398","工商银行","金融业","0.979"
"225","601600","中国铝业","制造业","0.255"
"226","601601","中国太保","金融业","0.479"
"227","601607","上海医药","批发和零售业","0.116"
"228","601615","明阳智能","制造业","0.124"
"229","601618","中国中冶","建筑业","0.128"
"230","601628","中国人寿","金融业","0.29"
"231","601633","长城汽车","制造业","0.193"
"232","601658","邮储银行","金融业","0.283"
"233","601668","中国建筑","建筑业","0.605"
"234","601669","中国电建","建筑业","0.2"
"235","601688","华泰证券","金融业","0.428"
"236","601689","拓普集团","制造业","0.189"
"237","601698","中国卫通","信息传输、软件和信息技术服务业","0.045"
"238","601699","潞安环能","采矿业","0.152"
"239","601728","中国电信","信息传输、软件和信息技术服务业","0.468"
"240","601766","中国中车","制造业","0.367"
"241","601788","光大证券","金融业","0.184"
"242","601799","星宇股份","制造业","0.12"
"243","601800","中国交建","建筑业","0.159"
"244","601808","中海油服","采矿业","0.051"
"245","601816","京沪高铁","交通运输、仓储和邮政业","0.72"
"246","601818","光大银行","金融业","0.311"
"247","601838","成都银行","金融业","0.147"
"248","601857","中国石油","采矿业","0.472"
"249","601865","福莱特","制造业","0.084"
"250","601868","中国能建","建筑业","0.16"
"251","601872","招商轮船","交通运输、仓储和邮政业","0.113"
"252","601877","正泰电器","制造业","0.137"
"253","601878","浙商证券","金融业","0.118"
"254","601881","中国银河","金融业","0.149"
"255","601888","中国中免","租赁和商务服务业","0.505"
"256","601898","中煤能源","采矿业","0.099"
"257","601899","紫金矿业","采矿业","1.165"
"258","601901","方正证券","金融业","0.207"
"259","601919","中远海控","交通运输、仓储和邮政业","0.37"
"260","601939","建设银行","金融业","0.249"
"261","601985","中国核电","电力、热力、燃气及水的生产和供应业","0.385"
"262","601988","中国银行","金融业","0.488"
"263","601989","中国重工","制造业","0.263"
"264","601995","中金公司","金融业","0.207"
"265","601998","中信银行","金融业","0.096"
"266","603019","中科曙光","制造业","0.252"
"267","603185","弘元绿能","制造业","0.055"
"268","603195","公牛集团","制造业","0.066"
"269","603259","药明康德","科学研究和技术服务业","0.984"
"270","603260","合盛硅业","制造业","0.102"
"271","603288","海天味业","制造业","0.369"
"272","603290","斯达半导","制造业","0.093"
"273","603369","今世缘","制造业","0.196"
"274","603392","万泰生物","制造业","0.108"
"275","603486","科沃斯","制造业","0.057"
"276","603501","韦尔股份","制造业","0.521"
"277","603659","璞泰来","制造业","0.114"
"278","603799","华友钴业","制造业","0.253"
"279","603806","福斯特","制造业","0.101"
"280","603833","欧派家居","制造业","0.084"
"281","603899","晨光股份","制造业","0.085"
"282","603986","兆易创新","制造业","0.364"
"283","603993","洛阳钼业","采矿业","0.214"
"284","605117","德业股份","制造业","0.063"
"285","605499","东鹏饮料","制造业","0.05"
"286","688005","容百科技","制造业","0.066"
"287","688008","澜起科技","制造业","0.272"
"288","688012","中微公司","制造业","0.427"
"289","688036","传音控股","制造业","0.207"
"290","688065","凯赛生物","制造业","0.055"
"291","688111","金山办公","信息传输、软件和信息技术服务业","0.323"
"292","688126","沪硅产业","制造业","0.14"
"293","688187","时代电气","制造业","0.058"
"294","688223","晶科能源","制造业","0.103"
"295","688303","大全能源","制造业","0.115"
"296","688363","华熙生物","制造业","0.08"
"297","688396","华润微","制造业","0.144"
"298","688561","奇安信","信息传输、软件和信息技术服务业","0.072"
"299","688599","天合光能","制造业","0.17"
"300","688981","中芯国际","制造业","0.61"

最后是用vue+element-plus编写一个简单的前端页面展示数据,页面非常简单,就是使用axios接收数据,然后渲染到表格中

<template>
  <el-row>
    <el-col :span="12">
      <el-card>
        <el-table
          :data="table_data"
          :show-header="true"
          :max-height="635"
          stripe
        >
          <el-table-column prop="id" label="序号"></el-table-column>
          <el-table-column prop="code" label="股票代码"></el-table-column>
          <el-table-column prop="name" label="公司简称"></el-table-column>
          <el-table-column prop="industry" label="所属行业"></el-table-column>
          <el-table-column prop="weight" label="权重占比"></el-table-column>
        </el-table>
      </el-card>
    </el-col>
    <el-col :span="12"> </el-col>
  </el-row>
</template>

<script>
import axios from "axios";
export default {
  data() {
    return {
      table_data: [],
    };
  },
  mounted() {
    this.init();
  },
  methods: {
    init() {
      var url = "http://localhost:9001/queryAll";
      axios
        .get(url)
        .then((response) => {
          this.table_data = response.data;
          console.log(response);
        })
        .catch(function (error) {
          console.log(error);
        });
    },
  },
};
</script>

<style scoped></style>

最后展示的效果就如文章开头那样。

结语

本文介绍了使用springboot+jdbcTemplate+sqlite进行编程的用例,并且以处理沪深300成分股数据为例子,我觉得如果我们自己写一些小玩具的话,这样的组合会比较好一点。

那么本文内容就到此结束啦,有什么想和我讨论的欢迎评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/232658.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

千锋 Vue 详细笔记整理

视频笔记是根据B站 千锋 涛哥 - SpringBootvue前后端分离项目《锋迷商城》实战课-完结版 进行整理的 笔记可上 gitee仓库 自取 千锋 Vue 笔记整理 一、vue 的简介1.1 使用 JQuery 的复杂性问题1.2 VUE 简介1.2.1 前端框架1.2.2 MVVM 二、 vue 入门使用2.1 vue 的引入2.2 入门案…

[LeetCode周赛复盘] 第 119 场双周赛20231209

[LeetCode周赛复盘] 第 119 场双周赛20231209 一、本周周赛总结100130. 找到两个数组中的公共元素1. 题目描述2. 思路分析3. 代码实现 100152. 消除相邻近似相等字符1. 题目描述2. 思路分析3. 代码实现 100147. 最多 K 个重复元素的最长子数组1. 题目描述2. 思路分析3. 代码实…

4.8 构建onnx结构模型-Less

前言 构建onnx方式通常有两种&#xff1a; 1、通过代码转换成onnx结构&#xff0c;比如pytorch —> onnx 2、通过onnx 自定义结点&#xff0c;图&#xff0c;生成onnx结构 本文主要是简单学习和使用两种不同onnx结构&#xff0c; 下面以 Less 结点进行分析 方式 方法一&a…

Redis有序集合对象

一.编码 有序集合的编码可以是ziplist或者skiplist。 ziplist编码的有序集合对象使用压缩列表作为底层实现&#xff0c;每一个集合元素使用紧挨在一起的两个压缩列表节点来保存。第一个节点保存元素的成员(member)&#xff0c;而第二个元素则保存元素的分值(score)。 127.0.0.…

Javaweb之 依赖管理的详细解析

04. 依赖管理 4.1 依赖配置 依赖&#xff1a;指当前项目运行所需要的jar包。一个项目中可以引入多个依赖&#xff1a; 例如&#xff1a;在当前工程中&#xff0c;我们需要用到logback来记录日志&#xff0c;此时就可以在maven工程的pom.xml文件中&#xff0c;引入logback的依…

无参RCE [GXYCTF2019]禁止套娃1

打开题目 毫无思绪&#xff0c;先用御剑扫描一下 只能扫出index.php 我们尝试能不能用php伪协议读取flag php://filter/readconvert.base64-encode/resourceindex.php php://filter/readconvert.base64-encode/resourceflag.php 但是页面都回显了429 怀疑是不是源码泄露 用…

【GDB】

GDB 1. GDB调试器1.1 前言1.2 GDB编译程序1.3 启动GDB1.4 载入被调试程序1.5 查看源码1.6 运行程序1.7 断点设置1.7.1 通过行号设置断点1.7.2 通过函数名设置断点1.7.3 通过条件设置断点1.7.4 查看断点信息1.7.5 删除断点 1.8 单步调试1.9 2. GDB调试core文件2.1 设定core文件的…

Qt之QSlider和QProgressBar

Qt之QSlider和QProgressBar 实验结果 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);connect(ui->dial,&QDial::valueChanged,this,&Widget::do_val…

【Oracle】backup备份时报错ORA-19809,ORA-9804

Oracle备份数据库时报错 ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 10305536 bytes disk space from 4385144832 limit 1.清理过时的备份&#xff1a; 使用RMAN删除不再需要的过时备份&#xff0c;以释放空间。执行以下命令&#xff1a; DEL…

win系统一台电脑安装两个不同版本的mysql教程

文章目录 1.mysql下载zip包&#xff08;地址&#xff09;2.解压在你的电脑上&#xff08;不要再C盘和带中文的路径&#xff09;3.创建my.ini文件4.更改环境变量&#xff08;方便使用, 可选&#xff09;5.打包mysql服务6.初始化mysql的data7.启动刚刚打包的服务8.更改密码 1.mys…

普冉(PUYA)单片机开发笔记(8): ADC-DMA多路采样

概述 上一个实验完成了基于轮询的多路 ADC 采样&#xff0c;现在尝试跑一下使用 DMA 的 ADC 多路采样。厂家例程中有使用 DMA 完成单路采样的&#xff0c;根据这个例程提供的模板&#xff0c;再加上在 STM32 开发同样功能的基础&#xff0c;摸索着尝试。 经过多次修改和测试&…

《安富莱嵌入式周报》第328期:自主微型机器人,火星探测器发射前失误故障分析,微软推出12周24期免费AI课程,炫酷3D LED点阵设计,MDK5.39发布

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 更新一期视频教程&#xff1a; 【实战技能】 单步运行源码分析&#xff0c;一期视频整明白FreeRTOS内核源码框架和运行…

解释Spring中一个bean的注入过程

目录 1、定义Bean&#xff1a; XML配置方式&#xff1a; 2、注入方式&#xff1a; 构造器注入&#xff08;Constructor Injection&#xff09;&#xff1a; Setter方法注入&#xff08;Setter Injection&#xff09;&#xff1a; 字段注入&#xff08;Field Injection&…

【AntDB 数据库】国产分布式数据库发展趋势与难点

引言&#xff1a; 日前&#xff0c;为更好地满足亚信科技客户对于数据管理的需求&#xff0c;提高通用型数据库的产品服务能力与业务拓展能力&#xff0c;亚信科技分布式数据库AntDB发布V7.0版本产品&#xff0c;助力运营商核心系统实现全方位的自主可控与业务系统的平稳上线。…

nodejs微信小程序+python+PHP北京地铁票务APP-计算机毕业设计推荐 -安卓

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

web漏洞的攻击及抓取攻击流量

以dvwa靶场为例&#xff0c;使用wireshark抓取攻击流量&#xff0c;并定位关键字段 SQL注入 攻击 在sql注入攻击 1 and 12 union select version(),2#流量特征 在数据包中可以清晰的查看源IP和目的IP 在Wireshark选中Ethernet0网卡 点击Submit&#xff0c;进行抓包 利用…

【STM32】TIM定时器编码器

1 编码器接口简介 Encoder Interface 编码器接口 编码器接口可接收增量&#xff08;正交&#xff09;编码器的信号&#xff0c;根据编码器旋转产生的正交信号脉冲&#xff0c;自动控制CNT自增或自减&#xff0c;从而指示编码器的位置、旋转方向和旋转速度 接收正交信号&#…

达梦数据库dm8守护集群部署手册

环境说明 操作系统&#xff1a;liunx-centos7.6 服务器&#xff1a;3台虚拟机&#xff08;主备数据库各一台&#xff0c;监视器一台(可选)&#xff09; 达梦数据库版本&#xff1a;达梦V8 一、安装前准备工作 参考达梦官方文档&#xff1a;https://eco.dameng.com/documen…

记一次堆内外内存问题的排查和优化

为优化淘宝带宽成本&#xff0c;我们在网关 SDK&#xff08;Java&#xff09;统一使用 ZSTD 替代 GZIP 压缩以获取更高的压缩比&#xff0c;从而得到更小的响应包。具体实现采用官方推荐的 zstd-jni 库。zstd-jni 会调用 zstd 的 c 库。 背景 在性能压测和优化过程中&#xff0…

基于 Gin 的 HTTP 中间人代理 Demo

前面实现的代理对于 HTTPS 流量是进行盲转的&#xff0c;也就是说直接在 TCP 连接上传输 TLS 流量&#xff0c;但是我们无法查看或者修改它的内容。当然了&#xff0c;通常来说这也是不必要的。不过对于某些场景下还是有必要的&#xff0c;例如使用 Fiddler 进行抓包或者监控其…
最新文章