Spring Boot 篇四: Spring Data JPA使用SQL Server

news2025/1/12 21:00:01

本文目录

  • SQL Server Express的安装或直接Docker
  • SQL Server JDBC Driver
  • TCP/IP 链接
    • 端口
  • Integrated Security
  • SSL
  • 总结

本篇介绍篇一至篇三中用到的JPA链接SQL Server的具体情况以及实战过程中可能遇到的问题。

SQL Server Express的安装或直接Docker

具体的下载和安装教程,请参阅微软SQL Server官网;

SQL Server Express是免费的,并且配套的SQL Server Management Studio也是可以用的。
Download SQL Server

呃,当然,使用Docker来运行SQL Server是另外一条路径。具体请参阅Docker
Hub文档

SQL Server JDBC Driver

在Java环境中使用SQL Server,需要安装SQL Server JDBC Driver。

微软将整个JDBC Driver的项目直接开源了:Github Repo

在其下载页面,可以选择对应的JRE版本,不同的JRE版本会有不同的package。或者在Maven项目中直接加入下列依赖(这里依赖于JRE 11)。

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>10.2.1.jre11</version>
    <scope>runtime</scope>
</dependency>

TCP/IP 链接

SQL Server的JDBC Driver需要TCP/IP。

基于Trouble Shooting,TCP/IP必须配置。

The Microsoft JDBC Driver for SQL Server requires that TCP/IP be installed and running to communicate with your SQL Server database. You can use the SQL Server Configuration Manager to verify which network library protocols are installed.

打开TCP/IP,需要SQL Server Configuration Manager

而基于文档,新的SQL Server Configuration Manager并没有额外的程序,而是提供了一系列的MSC文件。

  • SQL Server 2019: %sysdir%\SysWOW64\SQLServerManager15.msc
  • SQL Server 2017: %sysdir%\SysWOW64\SQLServerManager14.msc
  • SQL Server 2016: %sysdir%\\SysWOW64\SQLServerManager13.msc
  • 低版本略

打开MSC文件,即可进行相应的配置。

端口

另外一个精彩碰到的问题是:

A network-related or instance-specific error occurred while establishing a connection to SQL Server

这里需要查看端口的设置是不是正确。SQL Server默认使用端口1433。如下图设置。

IP

Integrated Security

SQL Server的Logon可以基于Windows是认证。这时不需要输入用户名和密码。这个在开发环境还是相当好用的,不需要额外配置开发环境的用户名和密码,更不需要将这些信息存储下来(如app.properties等等)。因为这些信息上传git的时候很麻烦。

然而,直接设置Integrated Security并不能正常工作。根本原因是JDK的路径下找不到mssql-jdbc-auth-xxx.dll(xxx是版本号)。

如果SQL Server Driver是Maven下安装的,那么上述DLL并不存在。换言之,上述DLL并不属于JAR的一部分。打开Maven的Repository目录并没有DLL:

.m2\repository\com\microsoft\sqlserver\mssql-jdbc\10.2.1.jre11

这时,只能去官方去下载Link

然后复制上述DLL到%JAVA_HOME%\bin下。

SSL

随着网络认证的日趋严格,SSL 验证也被设置为标准了。

下述错误就可能遇到了:

The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption

行之有效的方法是修改connection string:

spring.data.url=jdbc:sqlserver://localhost;database=classicmodels;integratedSecurity=true;encrypt=true;trustServerCertificate=true;

总结

有了以上这些配置和安装,SQL Server Express(以及别的版本)应该都能正确使用了。

另外常见的两个问题是:

  • Connection String。
    官方文档给定的语法如下:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

具体也可以参考上面的实例。

  • 数据类型。
    基础数据类型的官方文档和高级数据类型的官方文档。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sanic:通过dockerfile部署

简介&#xff1a;长期以来&#xff0c;环境一直是部署的难题。如果您的项目中有冲突的配置&#xff0c;您将不得不花费大量时间来解决它们。幸运的是&#xff0c;虚拟化为我们提供了一个很好的解决思路。Docker 就是其中之一。 历史攻略&#xff1a; sanic框架&#xff1a;简…

内网渗透体系学习1

工作组 工作组(Work Group)是计算机网络的一个概念&#xff0c;也是最常见和最普通的资源管理 模式&#xff0c;就是将不同的计算机按照功能或部门分别置于不同的组。通过创建不同的 工作组&#xff0c;不同的计算机可以按照功能或部门归属到不同的组内&#xff0c;整个组织的网…

XSCTF联合招新赛-热身赛(部分WP)

由于没有多少时间答题,抽空在划水的时候做了一两道题目.比赛已经结束了24小时了。特把写的WP分享一下,欢迎各位大佬进行指点。 文章目录warm_up头头是道B45364EZphpeasy_sqlbaigeiRSAimage1image2image3image42^11warm_up 只有虔诚的嘉心糖才能成功拿到flag 地址&#xff1a;4…

5G核心网技术基础自学系列 | 语音业务

书籍来源&#xff1a;《5G核心网 赋能数字化时代》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G核心网技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 3.9.1 5G语音概述 除了用于机器之…

libusb系列-003-Linux下libusb源码编译

libusb系列-003-Linux下libusb源码编译 文章目录libusb系列-003-Linux下libusb源码编译摘要源码下载及解压下载源码解压下载的源码压缩包打开终端准备编译环境安装make dh-autoreconf安装 libudev-dev编译错误的教程增加执行bootstrap.sh指令再编译make安装库确认下关键字&…

C语言中的文件操作那些事儿~~

是时候该学着操作文件了什么是文件文件种类文件名为什么要使用文件文件的打开和关闭文件的顺序读写fgetc/fputcfgets/gputsfscanf/fprintffread/fwrite文件的随机读写fseekftellrewind文件读取结束的判断文件缓冲区男人过了二十岁就要学着沉稳&#xff0c;遇到问题不要慌&#…

【Java】异常

看似不起波澜的日复一日 会突然在某一天让人看到坚持的意义 目录 1.认识异常 1.1 异常的概念 1.2 常见的异常 2.异常的体系结构 3.异常的分类 3.1 编译时异常 3.2 运行时异常 4.异常的处理 4.1 事前防御型 4.2 事后认错型 5.事后认错型处理 5.1 异常的抛出…

第22章 软件安装 RPM/ YUM

上章节是用源代码来编译完成&#xff1b; 发商编译好之后直接把可执行文件发布给用户来安装也是一种方法&#xff0c;类似于windows下的安装&#xff1b; 客户端取得这个文件后&#xff0c;只要通过特定的指令来安装&#xff0c; 那么该软件文件就会依照内部的脚本来检测相依的…

C++数据结构之堆栈

主要参考资料:01.堆栈基础知识 | 算法通关手册 (itcharge.cn)01.堆栈基础知识 | 算法通关手册 (itcharge.cn) 本文主要采用C实现&#xff0c;而参考资料主要采用python实现&#xff0c;可以相互结合食用。 基础知识 定义 堆栈&#xff08;Stack&#xff09;&#xff1a;简称为…

MySQL数据库学习(4)

DQL分组查询 语法&#xff1a; SELECT 字段列表 FROM 表名[ WHERE条件 ] GROUP BY 分组字段名 [HAVING分组后过滤条件]; 我们发现分组查询中有两个条件&#xff0c;这两个条件的区别是什么呢&#xff1f;执行时机不同: where是分组之前进行过滤&#xff0c;不满足where条件&a…

基于SSM的疫情管控系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

大数据Hadoop之——Apache Hudi 数据湖实战操作(Spark,Flink与Hudi整合)

文章目录一、概述二、Hudi CLI三、Spark 与 Hudi 整合使用1&#xff09;Spark 测试2&#xff09;Spark 与 Hudi 整合使用1、启动spark-shell2、导入park及Hudi相关包3、定义变量4、模拟生成Trip乘车数据5、将模拟数据List转换为DataFrame数据集6、将数据写入到hudi四、Flink 与…

前端ES6相关的面试题

前端ES6相关的面试题 文章目录前端ES6相关的面试题一. var let constvarletconst二 . 函数的扩展reset参数箭头函数三 . 数组的扩展四.Set和map数据结构Setmap五. Promise六. 模块化一. var let const var var存在声明提升 >先上车,后买票 var声明的变量会挂载到window下面…

Java实操避坑指南四、spring中的坑

文章目录1. 项目搭建过程1. pom 依赖2. 在没有配置数据库相关时不要引入依赖包&#xff0c;如spring-boot-starter-data-jpa2. spring bean 默认生成策略的正确使用1. 代码示例2. 单元测试3. 工具类 [参考](#test2)4. 报错信息5. 分析6. 使用说明2. 使用了Autowired 注解&#…

【5G RAN】5G gNB间的N2/NGAP切换(handover)那点事儿

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

@Import注解详解

Import这个注解非常重要&#xff0c;而且在springboot项目当中随处可见&#xff0c;就拿springboot启动类来说&#xff0c;我们经常会遇到一些Enable相关的注解&#xff0c;例如开启异步EnableAsync、开启缓存支持EnableCaching、开启定时任务EnableScheduling等等… 目录一、I…

Oracle通过DBLINK访问达梦数据库

环境需求 需要安装配置以下相关软件&#xff1a; 1、Oracle Gateways 2、ODBC数据源&#xff08;gateway机器&#xff09; 3、达梦数据库软件&#xff08;gateway机器&#xff09; 安装配置 Windows环境 安装达梦数据库软件 安装步骤省略&#xff0c;可以参考DM 数据库…

【嵌入式Linux开发一路清障-连载02】Ubuntu22.04安装Shutter进行截图和标注

Ubuntu22.04安装Shutter进行截图和标注障碍 05&#xff0d;Ubuntu22.04中不会给截图做标注&#xff0c;写Bolg举步维艰命令行方式安装Shuttershutter中的常用命令为截取活动窗口设置快捷键安装gnome-web-photo截取长图--失败--未完待续小结下节预告障碍 05&#xff0d;Ubuntu22…

一起来部署项目-采购一台云服务器

前言 不会运维的程序员不是一个好程序员&#xff0c;你是这样认为吗&#xff1f;不&#xff0c;不重要&#xff0c;关键是很多小企业是让后端程序员去干运维的&#xff0c;省钱~~~o(╥﹏╥)o。特别是在YQ严重的当下&#xff0c;所以为了提高自己的竞争力&#xff0c;从今天起&…

万字爽文一篇带你掌握Java8新特性

陈老老老板说明&#xff1a;新的专栏&#xff0c;本专栏专门讲Java8新特性&#xff0c;把平时遇到的问题与Java8的写法进行总结&#xff0c;需要注意的地方都标红了&#xff0c;一起加油。本文是介绍Java8新特性与常用方法&#xff08;此篇只做大体介绍了解&#xff0c;之后会把…