logo
目录

    数据库连接工具怎么开发?3分钟教你学会!——九数云BI | 帆软九数云

    九数云BI小编 | 发表于:2024-10-16 20:22:02

    数据库连接工具怎么开发?3分钟教你学会!——九数云BI插图

    相信大家都苦复杂的数据链接久矣,那如何开发一个可以连接多种数据库的工具呢,今天让来看看本文的数据库连接工具的开发步骤吧!

    数据库连接工具开发:需求分析

    想要实现一个Web端的数据库连接工具。进行动态的SQL查询,动态的结果封装返回,可以让用户快速的实现数据库资源的汇总。

    为什么要这样呢?

    在有些数据分析的场景下,非专业的人员很难去实现从数据库查询数据,但是他们对数据的分析维度又是不确定,这个时候,出现的问题就是,需要开发人员不断的去拼接各种的数据库表结构并实现相应的数据统计导出功能。

    如果可以有一个网页版的数据库连接器,就可以减少开发人员的工作量了。非专业人士可以通过操作一个SQL拼接按钮就可以实现对于数据库数据的动态查询。这样大大减少了开发人员的工作量。用户也可以根据自己的需求动态的得到自己想要的数据。

    数据库连接工具开发:如何实现

    数据库连接工具开发第一步、创建一个Spring Boot的项目

    项目结构如下所示。

    数据库连接工具怎么开发?3分钟教你学会!——九数云BI插图1

    数据库连接工具开发第二步、导入相关的依赖

    在POM文件中引入Spring Boot的父级依赖,并且在Dependency中添加如下的依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

    配置数据库相关依赖

    server:
      port: 8081
    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/test
        username: root
        password: root

    数据库连接工具开发第三步、创建服务层对象

    在service中添加一个SqlExecutorService对象,并且引入JdbcTemplate jdbcTemplate对象。

    @Service
    public class SqlExecutorService {
    
    
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        public List<Map<String, Object>> executeSql(String sql, Object... parameters) {
            List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
            return mapList;
        }
    
        public List<Map<String,Object>> execute(String sql){
            //spring 内置了一个数据库
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://192.168.1.200:3306/db_szzf");
            dataSource.setUsername("root");
            dataSource.setPassword("456789");
            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
            List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
            return mapList;
        }
    }
    

    数据库连接工具开发第四步、创建Controller层的对象

    在Controller层创建调用的接口,这里使用Post请求的方式进行调用。

    @RestController
    @RequestMapping("/sql")
    public class SqlController {
        @Autowired
        private SqlExecutorService sqlExecutorService;
    
        @PostMapping("/execute")
        public List<Map<String, Object>> executeSql(@RequestBody String sql) {
            return sqlExecutorService.execute(sql);
        }
    
        @PostMapping("/executeWithParams")
        public List<Map<String, Object>> executeSqlWithParams(@RequestBody SqlRequest request) {
            return sqlExecutorService.executeSql(request.getSql(), request.getParameters().toArray());
        }
    }
    

    数据库连接工具开发第五步、启动项目并测试

    启动项目,使用Postman调用接口,并且执行查询语句会看到返回结果如下图所示,到这一步,整体的项目结构就算搭建完成了。

    数据库连接工具怎么开发?3分钟教你学会!——九数云BI插图2

    总结

    本项目实现了从接口传入动态的SQL语句,然后将执行结果惊醒返回,需要注意的实SQL注入、接口安全等问题。对于SQL语句的封装可以采用页面编写调用的方式,也可以通过编写图形化页面拼接的方式来实现。当然,如果想要追求性能上的突破,可以引入数据库连接池,或者是对查询结构,操作结果的数据进行缓存来提升系统查询性能。

    当然,考虑到不是每一个人都是数据专家,对此,推荐大家使用0代码的九数云BI进行数据链接,它是帆软软件旗下的一款零代码在线BI、报表和数据分析工具,能够对接多种类数据源、完成各类千万行数据量、超复杂数据指标的计算,也可以在5分钟内创建富有洞察力的图表、仪表板、故事板和数据大屏,并设有模板市场,支持用户自定义制作模板并上传。

    热门产品推荐

    九数云BI是一个人人都可轻松上手的零代码工具,您可以使用它完成各类超大数据量、超复杂数据指标的计算,也可以在5分钟内创建富有洞察力的数据看板。企业无需IT、无需大量资源投入,就能像搭积木一样搭建企业级数据看板,全盘核心指标综合呈现,用数据驱动商业决策。
    相关内容 查看更多

    随时随地在线分析

    现在注册,即可领取15天高级版免费使用,体验数据扩容、自动化数据预警、 每日定时更新等20+项强大功能
    立即使用