当前位置:首页 > 技术 > 正文内容

使用Spring JdbcTemplate连接主流数据库

访客 技术 2026年9月28日 12

数据库连接依赖配置

在Spring Boot项目中配置数据库驱动依赖:

<dependencies>
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

数据映射实体实现

创建数据实体类并实现RowMapper接口:

package com.example.entity;

import lombok.Data;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;

@Data
public class SensorData implements RowMapper<SensorData> {
    private String identifier;
    private String description;
    private Double measurement;
    private String unit;
    private String category;
    
    @Override
    public SensorData mapRow(ResultSet rs, int rowNum) throws SQLException {
        SensorData data = new SensorData();
        data.setIdentifier(rs.getString("TagName"));
        data.setDescription(rs.getString("TagDesc"));
        data.setMeasurement(rs.getDouble("Value"));
        data.setUnit(rs.getString("TagUnit"));
        data.setCategory(rs.getString("Type"));
        return data;
    }
}

数据库连接工具类

实现JdbcTemplate数据库连接操作:

package com.example.util;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import java.util.List;

public class DatabaseConnector {
    private static JdbcTemplate template;
    
    static {
        DriverManagerDataSource source = new DriverManagerDataSource();
        source.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        source.setUrl("jdbc:sqlserver://10.25.23.172:1433;databaseName=SCADA_Data_3040");
        source.setUsername("SLSL");
        source.setPassword("Admin@3040");
        template = new JdbcTemplate(source);
    }
    
    public static List<SensorData> fetchDataByCategory(int category) {
        String query = "SELECT * FROM RealData WHERE Type = ?";
        return template.query(query, new SensorData(), category);
    }
}

功能测试验证

测试数据库连接和数据获取功能:

package com.example.test;

import com.example.util.DatabaseConnector;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;

@SpringBootTest
public class ConnectionTest {
    
    @Test
    public void testDatabaseConnection() {
        List<SensorData> dataList = DatabaseConnector.fetchDataByCategory(0);
        System.out.println("Fetched records: " + dataList.size());
    }
}

该方法同样适用于MySQL、PostgreSQL、Oracle等常见数据库连接,只需调整对应的驱动类和连接参数即可。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

linux screen 用法详情 (nohup 的替代方案)

一、screen 是什么?能干嘛?screen 是一个终端复用器,可以:在一个 SSH 会话中开多个“虚拟终端”SSH 断线后,程序仍然在后台运行随时重新连接到原来的会话特别适合:nohup 的替代方案跑脚本 / 爬虫 / 训练模型运维、远程开发二、安装 screen# CentOS / Rocky / Almayum install -y screen# Debian / Ubuntuapt i...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。