因为之前这个项目数据库是mysql,现在因为工作需要暂时改成sqlserver。对了这个sqlserver的版本是2008R2的。以下就是做的改动以及碰到的问题~~~~~~
一、第一个当然是加载驱动包啦~~
<!--sqlserver驱动 -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
二、改application.yml文件
spring:
datasource:
url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=haha
username: sa
password: sa
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
jpa:
database: sql_server
hibernate:
dialect: org.hibernate.dialect.SQLServer2008Dialect
三、遇到的问题
-
根据这个https://www.cnblogs.com/chenyanlong/p/7753018.html查了下sqlserver端口是1433~~~~。
- “请验证连接属性,并检查 SQL Server 的实例正在主机上运行, 且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接”。我是根据这个https://www.cnblogs.com/360-782/p/sqlserverconfigurationmanager.html解决的,把TCP/IP协议启动,把防火墙打开,再重启服务。然后就连接上啦~~~~
- 数据类型 text 和 nvarchar,text 在 equal to 运算符中不兼容得问题。查资料以为sqlserver的大字段是text ,但是报错了,后来找发现sqlserver用的是 nvarchar(max)。
-
com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'xxxxx' 无效。我的是因为没有加这个dialect~~~~
jpa:
hibernate:
dialect: org.hibernate.dialect.SQLServer2008Dialect