Spring Boot,Mybatis Plu连接 Sql Server 数据库源(根据 sql server 自动生成代码结构),解决报错
文章目录
- 一、Spring Boot 整合 Sql server
- 注意 sql server 的端口号和连接方式
- 二、MyBatis Plus 自动生成 Sql Server 代码
- 三、处理 Mybatis Plu 连接 Sql Server 驱动报错
- 问题一:com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。 ClientConnectionId:b00eb92e-cac6-46bb-8472-9f2127cbb905
- 问题二:com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]". ClientConnectionId:8895b2e7-f471-43f3-9c76-654035427cd
一、Spring Boot 整合 Sql server
1、首先添加依赖:
<!--sql server依赖-->
<dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><version>9.2.1.jre8</version>
</dependency>
2、配置文件(application.yml)中配置:
spring:datasource:driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriverurl: jdbc:sqlserver://IP地址:端口号;databaseName=数据库名username: XXXXXpassword: XXXXX
注意 sql server 的端口号和连接方式
1、我们知道 mysql:使用 navicat 连接时,直接输入 IP 即可连接,在配置文件中也是输入 IP:端口号
连接
但注意:
2、sql server 不一样,navicat 或 sql server 管理工具 连接时一定要加上端口号,也就是你这个 sql server 运行在哪个端口,而且注意:端口号是 , 逗号连接,而不是冒号
好在:在配置文件中是输入 IP:端口号
连接。
Sql Server 默认端口是 1433
二、MyBatis Plus 自动生成 Sql Server 代码
1、首先引入依赖:
<!--MP自动生成器依赖-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.3.1</version>
</dependency>
<dependency> <!--自动生成的模板:模板有三种:Velocity(默认)、Freemarker、Beetl --><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version>
</dependency>
2、输入生成器代码
public class MPGenerator {public static void main(String[] args) {//可以直接去官方文档上查看FastAutoGenerator.create("jdbc:sqlserver://IP地址:端口号;databaseName=数据库名","账号", "密码").globalConfig(builder -> {builder.author("XXX").disableOpenDir().outputDir(System.getProperty("user.dir")+"/src/main/java");}).dataSourceConfig(builder ->builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {int typeCode = metaInfo.getJdbcType().TYPE_CODE;if (typeCode == Types.SMALLINT) {return DbColumnType.INTEGER;}return typeRegistry.getColumnType(metaInfo);})).packageConfig(builder -> {builder.parent("父报名(比如:com.abc.abc)").controller("controller").service("service").serviceImpl("service.impl").mapper("mapper").entity("entity");}).strategyConfig(builder -> {builder.addInclude("表名").entityBuilder().enableLombok();}).templateEngine(new VelocityTemplateEngine()).execute();}
}
运行报错
三、处理 Mybatis Plu 连接 Sql Server 驱动报错
问题一:com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。 ClientConnectionId:b00eb92e-cac6-46bb-8472-9f2127cbb905
解决: 换成低版本依赖
<dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><!--jdk是8,后面jre8对应自己的jdk版本--><version>6.4.0.jre8</version>
</dependency>
解决问题一后,又报错:
问题二:com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: “The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”. ClientConnectionId:8895b2e7-f471-43f3-9c76-654035427cd
也就是:The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]
解决: 换驱动:
去掉之前的 sql server 驱动:
<!--sql server依赖-->
<!--<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.4.0.jre8</version>
</dependency>--><dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.2.8</version>
</dependency>
配置文件改为:
spring:datasource:driver-class-name: net.sourceforge.jtds.jdbc.Driverurl: jdbc:sqlserver://IP地址:端口号;databaseName=数据库名username: XXXXXpassword: XXXXX
同理:自动生成代码也要改:
.create("jdbc:sqlserver://IP地址:端口号;databaseName=数据库名","账号", "密码")
再次运行:解决报错。