JDBC连接SQL Server
Posted 向前爬的蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC连接SQL Server相关的知识,希望对你有一定的参考价值。
下载jdbc驱动包
下载地址,我下载的是exe版本的,其实是格自解压包。下载完毕之后,双击运行,会解压在当前目录下。
Microsoft SQL Server JDBC Driver 3.0\\sqljdbc_3.0\\chs\\auth\\x64\\sqljdbc_auth.dll文件 复制到C:\\Windows\\SysWOW64目录下。(64bit系统)
Microsoft SQL Server JDBC Driver 3.0\\sqljdbc_3.0\\chs\\auth\\x86\\sqljdbc_auth.dll 文件 复制到 C:\\Windows\\System32 (32位系统,未经过验证)
然后将 Microsoft SQL Server JDBC Driver 3.0\\sqljdbc_3.0\\chs\\sqljdbc4/jar 包导入到项目中。
源代码
1 import java.sql.*; 2 public class Conn{ 3 public static void main(String[] args) { 4 String JDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; 5 //SQL数据库引擎 6 String connectDB="jdbc:sqlserver://ABYSS-PC\\\\MYABYSS:64160;DatabaseName=master"; 7 //数据源 !!!!注意若出现加载或者连接数据库失败一般是这里出现问题 8 // 我将在下面详述 9 try { 10 //加载数据库引擎,返回给定字符串名的类 11 Class.forName(JDriver); 12 }catch(ClassNotFoundException e) 13 { 14 //e.printStackTrace(); 15 System.out.println("加载数据库引擎失败"); 16 System.exit(0); 17 } 18 System.out.println("数据库驱动成功"); 19 20 try { 21 String user="sa"; 22 //这里只要注意用户名密码不要写错即可 23 String password="*liluotinghua33*"; 24 Connection con=DriverManager.getConnection(connectDB,user,password); 25 //连接数据库对象 26 System.out.println("连接数据库成功"); 27 Statement stmt=con.createStatement(); 28 //创建SQL命令对象 29 30 //创建表 31 System.out.println("开始创建表"); 32 //创建表SQL语句 33 String query= "create table TABLE1(ID 34 NCHAR(2),NAME NCHAR(10))"; 35 stmt.executeUpdate(query);//执行SQL命令对象 36 System.out.println("表创建成功"); 37 38 //输入数据 39 System.out.println("开始插入数据"); 40 String a1="INSERT INTO TABLE1 VALUES(\'1\',\'旭哥\')"; 41 //插入数据SQL语句 42 String a2="INSERT INTO TABLE1 VALUES(\'2\',\'伟哥\')"; 43 String a3="INSERT INTO TABLE1 VALUES(\'3\',\'张哥\')"; 44 stmt.executeUpdate(a1);//执行SQL命令对象 45 stmt.executeUpdate(a2); 46 stmt.executeUpdate(a3); 47 System.out.println("插入数据成功"); 48 49 //读取数据 50 System.out.println("开始读取数据"); 51 ResultSet rs=stmt.executeQuery("SELECT * FROM 52 TABLE1");//返回SQL语句查询结果集(集合) 53 //循环输出每一条记录 54 while(rs.next()){ 55 //输出每个字段 56 System.out.println(rs.getString("ID")+"\\t"+rs.getString("NAME")); 57 } 58 System.out.println("读取完毕"); 59 60 //关闭连接 61 stmt.close();//关闭命令对象连接 62 con.close();//关闭数据库连接 63 }catch(SQLException e){ 64 e.printStackTrace(); 65 System.out.print(e.getErrorCode()); 66 //System.out.println("数据库连接错误"); 67 System.exit(0); 68 } 69 } 70 }
出现的问题
String connectDB="jdbc:sqlserver://ABYSS-PC\\\\MYABYSS:64160;DatabaseName=master";
先讲解一下这段代码。
其中ABYSS-PC\\\\MYABYSS 表示服务器名字,两个反斜杠表示转义。什么是服务器的名字呢,如下图:
64160 表示端口号,一般情况下默认的是1433,特殊情况下如我的便是随机分配的。
验证端口号:
查找问题的过程:
第一步: 启动所有与SQL有关的服务,问题依旧;
第二步: 查看windows防火墙,被默认启动了,不启动选择项被Disabled。两个提示“由于安全考虑,某些设置由组策略控制”“Windows防火墙正在使用您的域设置”,先用gpedit.msc打组策略编辑器,机算机配置--管理模板--网络--网络连接--Windows防火墙--标准配置文件,查看右边各选项属性,都是未配置状态,问题不在这里。
第三步:用windows帐号登录,连接成功后,右击实例,选择属性->安全性。确定“服务器身份验证”选择的是“SQL Server和Windows身份验证模式”
以上是关于JDBC连接SQL Server的主要内容,如果未能解决你的问题,请参考以下文章
jdbc连接sql Server 数据库时用的数据库名是指实例名吗?
java 连接mysql 和sql server2008代码