JDBC连接SQL Server数据库[windows验证模式连接+SQL server验证]
JDBC连接SQL Server数据库[windows验证模式连接+SQL server验证]
都说用JDBC连接数据库会出现很多问题,现总结、汇总一下。
前提是已经正确安装了SQL Server系列数据库并可正常使用(不同版本连接略有区别)。
1、首先,要正确导入sqljdbc.jar到工程[右键工程,点击属性,在弹出的菜单中选择Build Path,添加外部JDR:Add External JARs,找到 sqljdbc4.jar 文件并打开,然后单击 OK 完成构建路径的配置]
2、把sqljdbc\chs\auth\x64下的sqljdbc_auth.dll文件拷贝到:C:\Windows\System32。[32位的x64同理]
3、import java.sql.*;需要导入的包
SQL Server数据库配置事项:
1、因为SQL Server 安装好后,默认协议是没有开启的,所以要打开SQL Server配置管理器中开启:
步骤:运行 开始 → 所有程序 → Microsoft SQL Server 2012 → 配置工具 →SQL Server配置管理器,
2、要允许 除本机以外,其他设备连接到数据库,SQL Server默认是只允许本机连接的。
SQL Server2005,2008 是要在配置工具中,外围应用配置器中,配置服务。
SQL Server2012,是要配置ERIC2012的协议。
3、若采用SQL Server身份验证方式--连接SQL Server,需要设置登录帐号和密码;
步骤:a.SQL Server Management Studio 的对象资源管理器中,右键单击服务器,再单击“属性”
b.在“安全性”页上,选择SQL Server身份验证,
c.展开连接的服务器,展开“安全性”,展开“登录名”,设置sa的密码为abc。
!!记住,设置完后要重新连接。
4、在数据库中,创建一个,database,至少含有一张表用作测试。此处以数据库studentdb,学生表student为例
编写程序,连接和操作数据库
方式一:windows验证模式连接SQL Server
package com.ljheee.sqlserver;
import java.sql.*;
public class SqlServer {
public static void main(String[] args) {
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//数据库URL[即:是要连接那一个数据库]localhost--指定本机;integratedSecurity=true--指定windows验证模式连接数据库studentdb
String dbURL = "jdbc:sqlserver://localhost:1433;integratedSecurity=true; DatabaseName=studentdb";
try {
Class.forName(driver);//加载驱动
con = DriverManager.getConnection(dbURL);//建立连接,返回一个Connection con对象
System.out.println("Connecting Successful!!!!!");//控制台输出Connecting Successful!!!!!
stmt = con.createStatement();//执行对象Statement负责执行SQL语句,由Connection对象产生
rs = stmt.executeQuery("select * from student");//Statement对象stmt执行查询操作,返回结果集
while(rs.next()){ //rs.getInt("id");从结果集rs 的“id”列,获取int型的 值
System.out.println(rs.getInt("id")+"\t"+rs.getString("name")+"\t"+rs.getString("sex"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
rs.close();
stmt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
方式二:采用SQL Server身份验证方式--连接SQL Server
public static void main(String[] args) {
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//数据库URL[即:是要连接那一个数据库]localhost--指定本机;integratedSecurity=true--指定windows验证模式连接
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=studentdb";
try {
Class.forName(driver);//加载驱动
//建立连接,返回一个Connection con对象
con = DriverManager.getConnection(dbURL,"sa","123");//在本机数据库中已设置登录名“sa”,密码“123”
System.out.println("Connecting Successful!!!!!");
stmt = con.createStatement();
rs = stmt.executeQuery("select * from student");
while(rs.next()){
System.out.println(rs.getInt("id")+"\t"+rs.getString("name")+"\t"+rs.getString("sex"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
rs.close(); //关闭资源
stmt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
最常见的问题:
警告: Failed to load the sqljdbc_auth.dll
com.microsoft.sqlserver.jdbc.SQLServerException: 没有为集成身份验证配置驱动程序。
尝试方式:
1、把sqljdbc\chs\auth\x64下的sqljdbc_auth.dll文件拷贝到:C:\Windows\System32。[32位的x64同理]
2、把sqljdbc_auth.dll文件复制到bin文件夹看看,就是JDK的bin,像我的就是C:\Program Files (x86)\jdk1.8.0_65\bin。[在jre文件夹下的bin也复制一个]
还有就是:出现有“此驱动程序不支持JRE1.7,请使用支持JDBC4.0的sqljdbc4.jar的类库”的问题。不同版本驱动,支持的JRE不同,可能需要切换JRE版本。
JDBC连接SQL Server数据库[windows验证模式连接+SQL server验证]相关推荐
- SQL Server数据库单用户模式设置
将数据库设置为单用户模式 单用户模式是指只有一个用户可以访问某个资源的状态. SQL Server数据库单用户模式设置 在进行一些数据库操作时,需要先把数据库设置为单用户模式,操作完成后再改回普通模式 ...
- Django连接使用SQL Server数据库(windows版)
2019独角兽企业重金招聘Python工程师标准>>> 前言: 众所周知,Django 默认支持sqlite,mysql,oracle,postgresql数据库,不支持SQL Se ...
- SQL Server 数据库单用户模式处理
在还原数据库bak备份文件时,由于某种原因(具体何种原因在此不进行分析)导致数据库还原后处于单用户模式,如下图: 单个用户模式导致,数据库无法打开,只能通过脚本去查询数据库内的表,然后进行查询数据,极 ...
- SQL Drop数据库– MySQL,PostgreSQL,SQL Server
SQL Drop Database SQL Drop数据库 When we work with the database there are very rare cases when we want ...
- SQL创建数据库– PostgreSQL,MySQL,SQL Server
The start of data storage is from the creation of a database. As the name suggests database is a bas ...
- 高版本sql server数据库复制到低版本sql server数据库
前提,复制数据库需要在局域网内才行,理论上只要是高版本还原数据到低版本,这个方法都行 一.先在sql server2014 上选择要复制的数据库,右键>任务>生成脚本,然后一直下一步到生成 ...
- 安卓怎么连接服务器的数据库文件,安卓怎么连接服务器的数据库文件
安卓怎么连接服务器的数据库文件 内容精选 换一换 文档数据库服务支持开启公网访问功能,通过弹性IP进行访问.您也可通过弹性云服务器的内网访问文档数据库.要将已有的MongoDB数据库迁移到文档数据库, ...
- navicat无法连接远程mysql数据库_navicat无法远程连接mysql的解决方法
近日在Ubuntu上安装了一个 MySQL 5.0,因为使用 phpMyAdmin 还必须安装 PHP,所以打算直接使用远程管理工具Navicat for MySQL 来连接. 在 Ubuntu 中通 ...
- centos6安装mysql并远程连接_MySQL5.7数据库安装与远程连接
系统:Redhat Linux 7.7 MySQL版本:5.7 1. MySQL下载 o 登录网站:https://dev.mysql.com/downloads/mysql/ o 选择合适版本与系统 ...
最新文章
- mysql8.0.28忘记密码
- 简单轻松学 Linux 之 awk
- 应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序
- mysql 变量null_如何检查变量是否为NULL,然后使用MySQL存储过程进行设置?
- android studio快捷键大全
- 英雄联盟手游火线妹上线了!金克丝也想成为第一AD吗?
- jarsigner签名过程
- python怎么清空屏幕_python如何清屏
- 阿里云python中文社区_python写中文
- python中 str 和 repr_Python中__repr__和__str__区别详解
- jQuery 知识点大纲
- vsto从入门到精通--专栏目录
- Flutter关于简单的吸顶通讯录制作
- 一个链接搞定源码下载
- 2020神舟几号发射_神舟九号和神舟十号是什么时候发射的,宇航员分别是谁?...
- VS下EXE可执行文件启动代码剖析(2)_mtinit函数
- CM源码(CyanogenMod)源码编译
- docker exec命令-进入docker中
- 智能送药小车解说(国二)
- Git分布式版本控制工具【IDEA版】【安装和使用以及上传代码到Gitee】(一篇文章精通系列)