zoukankan      html  css  js  c++  java
  • JDBC连接SQL Server

    下载jdbc驱动包

    下载地址,我下载的是exe版本的,其实是格自解压包。下载完毕之后,双击运行,会解压在当前目录下。

          Microsoft SQL Server JDBC Driver 3.0sqljdbc_3.0chsauthx64sqljdbc_auth.dll文件 复制到C:WindowsSysWOW64目录下。(64bit系统)

          Microsoft SQL Server JDBC Driver 3.0sqljdbc_3.0chsauthx86sqljdbc_auth.dll 文件 复制到 C:WindowsSystem32 (32位系统,未经过验证)

     然后将  Microsoft SQL Server JDBC Driver 3.0sqljdbc_3.0chssqljdbc4/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")+"	"+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,特殊情况下如我的便是随机分配的。

    验证端口号:

    1、打开任务管理器,选择服务,查看SQL Server实例的 PID号为7284,我的电脑运行了两个数据库实例,我只连接第一个实例。
    2、打开命令提示符。输入 netstat -ano。 7284所对应的端口号是64160.
    DatabaseName=master;  master表示数据源。如图。
     
    在运行还出现一个问题就是,用windows身份验证可以登录数据库,但是使用SQL Server身份验证却提示失败。
    一般出现错误会报告错误代码,我这里报告的错误代码是18456 。你可以用谷歌搜索一下: SQL Server 2008 错误代码 18456.
    这里我简单的提供一下解决办法。
    首先windows帐号是可以登录的。

    查找问题的过程:
    第一步: 启动所有与SQL有关的服务,问题依旧;
    第二步: 查看windows防火墙,被默认启动了,不启动选择项被Disabled。两个提示“由于安全考虑,某些设置由组策略控制”“Windows防火墙正在使用您的域设置”,先用gpedit.msc打组策略编辑器,机算机配置--管理模板--网络--网络连接--Windows防火墙--标准配置文件,查看右边各选项属性,都是未配置状态,问题不在这里。
    第三步:用windows帐号登录,连接成功后,右击实例,选择属性->安全性。确定“服务器身份验证”选择的是“SQL Server和Windows身份验证模式”
    通过这三个步骤,问题就差不多解决了。
    还以一点,别忘了给sa用户登录权限。
    双击sa帐号
    选择状态。
  • 相关阅读:
    布局重用 include merge ViewStub
    AS 常用插件 MD
    AS 2.0新功能 Instant Run
    AS .ignore插件 忽略文件
    AS Gradle构建工具与Android plugin插件【大全】
    如何开通www国际域名个人网站
    倒计时实现方案总结 Timer Handler
    AS 进行单元测试
    RxJava 设计理念 观察者模式 Observable lambdas MD
    retrofit okhttp RxJava bk Gson Lambda 综合示例【配置】
  • 原文地址:https://www.cnblogs.com/wdpnodecodes/p/7407311.html
Copyright © 2011-2022 走看看