IDEA02:配置SQL Server2019数据库

写在前面

主要是记录一下如何配置SQL Server2019的过程。

一、下载并安装SQL Server2019

主要参考了博文:SQLServer2019安装(Windows)

二、下载JDBC依赖包

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>10.2.0.jre8</version>
</dependency>
  • 注意version,如果是JAVA8版本的话,要用jre8后缀的jar包。

和JAR对应关系

三、创建数据库和表

这里主要是介绍如何使用SQL Server Management Studio进行创建。

  1. 在左边数据库上右键新建数据库即可创建新数据库。
  2. 在新建的数据库下的上右键新建表即可进入创建表的窗口。

创建新表

  1. 填完要在表上创建的列之后,直接保存当前窗口即可创建新表。
  2. 如果修改了创建表的窗口中的值,直接保存即可修改已经创建了的表。但如果某些改动需要删除原表重新创建(如修改了某些列的数据类型),将不被允许修改。
  • 点击工具->选项,在设计器中取消勾选阻止保存要求重新创建表的更改即可。
  • 但要特别注意,如果是表已经有大量的数据了,重新创建表是相当危险的操作,因为数据将全部丢失。

修改阻止重新创建表的更改

四、用JDBC测试连接数据库

一个测试能否正确连接数据库的代码如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.*;

public class DB_Test {
    private static Connection dbConn = null;

    public static void main(String[] args) {
        String dbURL = "jdbc:sqlserver://localhost:1433;"
                + "DatabaseName=Test;";  // Test为数据库名称
        try {
            //1.加载驱动
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            System.out.println("加载驱动成功!");
            //2.连接
            dbConn = DriverManager.getConnection(dbURL, "sa", "123456");  // sa管理员身份
            System.out.println("连接数据库成功!");
            String sql="select * from Test";  // 执行的语句,Test为数据库表
            PreparedStatement statement=null;
            statement=dbConn.prepareStatement(sql);
            ResultSet res=null;
            res=statement.executeQuery();
            while(res.next()){
                String title=res.getString("id");  // 或者属性列对应值
                System.out.println(title);
            }
        }catch(Exception e) {
            e.printStackTrace();
            System.out.println("连接数据库失败!");
        }

    }
}

五、一些错误

错误1:com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”。

// 适用于 SQL Server 的 Microsoft JDBC 驱动程序不会验证 SQL Server TLS 证书
String dbURL = "jdbc:sqlserver://localhost:1433;"
                + "DatabaseName=Test;"
                + "encrypt=true;trustServerCertificate=true";

错误2:对象名 ‘XXX’ 无效。

  • 场景:在SS脚本执行的时候数据库表XXX报错,提示找不到这个表。
  • 原因:没有切换到对应要操作的数据库下。
  • 解决方法:在左上角可用数据库选择框中切换到对应的数据库即可。

切换到需要操作的数据库下

错误3:脚本执行长时间没有响应

  • 情景:执行脚本的时候长时间没有响应,而且通过代码(如JDBC)访问也不能响应。
  • 原因:数据库发生死锁。我这边是因为通过代码访问的时候开了多线程导致了数据库死锁。
  • 解决方法:在Sql Server Configuration Manager中重启数据库服务即可。

错误4:无法获得数据库 ‘model’ 上的排他锁。请稍后重试该操作。CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。 (Microsoft SQL Server,错误: 1807)

declare   @sql   varchar(240)     
      
  while   1=1     
  begin     
      
  select   top   1   @sql   =   'kill   '+cast(spid   as   varchar(20))     
  from     master..sysprocesses         
  where   spid   >   50   and   spid   <>   @@spid       
      
  if   @@rowcount   =   0     
      break     
      
  exec(@sql)     
  end  
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值