Java连接SQL sever2008数据库

一.安装好SQL Server 2008后,运行 开始 → 所有程序 → Microsoft SQL Server 2018 → 配置工具 → SQL Server配置管理器,如下图所示:
Java连接SQL sever2008数据库Java连接SQL sever2008数据库
打开的窗口如上图所示。在左边栏找到 SQL Server网络配置选项,点开它的小箭头,会看到“【使用的数据库名称】的协议” (图中是AURORA的协议),选中它,看右边栏。
Named Pipes 右击启用,同样的,右击TCP/IP 点击启用.
双击TCP/IP(右键→属性),在弹出的窗口中选择 “IP地址” 选项卡.
IP1和IP10的【IP地址】设为127.0.0.1,并将所有【IP+数字的组合】的【已启用】设为。接着,拖动下拉条到最下方,将IP1、IP10、 IPAll 中的【TCP端口】设成 1433,这是SQL的传输端口,非常重要!

Java连接SQL sever2008数据库 Java连接SQL sever2008数据库 
重新启动计算机!

 

二.连接数据库需要微软提供的驱动jdbc4

1

Java连接SQL sever2008数据库

2

Java连接SQL sever2008数据库

3

Java连接SQL sever2008数据库

4

Java连接SQL sever2008数据库

5

Java连接SQL sever2008数据库

6

Java连接SQL sever2008数据库

7构建sqljdbc时将sqljdbc.jar和sqljdbc4.jar添加是有顺序的(先时sqljdbc4.jar,再是sqljdbc,但是若仅添加sqljdbc4.jar是可以的,但为了避免未知的问题,将两个都添加)

 

Java连接SQL sever2008数据库

下图是顺序相反时执行代码报出的异常;

Java连接SQL sever2008数据库

8  将驱动注册完成,在SQL server端建库建表,可提前建好。

 

Java连接SQL sever2008数据库

 

9 执行代码,并得到结果集

 

没有导入jdbc前:

Java连接SQL sever2008数据库

导入之后:

Java连接SQL sever2008数据库

10   查看数据库

 

Java连接SQL sever2008数据库

 

三.加载驱动和库连接代码

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载驱动

DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=库名 ", "登录名", "密码");

stmt = con.createStatement();//数据库连接

(数据库和表需要提前建好)

四.遇到的问题:

  1. 对象名 表名无效。

2.无法打开登录所请求的数据库 "Aurora_DataBase"。登录失败。

3.通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。

五.参考代码(说明:需要在SQL sever中先创建库和表)

package work.数据库连接;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class JdbcDemo {

    public static void main(String[] args) {

       Statement stmt = null;

       Connection con = null;

       try {

           //SQL server注册驱动

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

       } catch (ClassNotFoundException e) {

           System.out.println("JDBC连接异常");

       }

       try {

           //获取数据库连接

           con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Aurora_DataBase", "Aurora", "122599");

           //创建Statement对象

           stmt = con.createStatement();

           //数据插入(删除,更新,DML语言都可操作)

           String sql = "insert into

user_s(id,username,userpass,email) values('3','sd','122599','123m')";

           //数据查询

           String sqll = "select * from user_s";

           //遍历结果集

           ResultSet rs = stmt.executeQuery(sqll);

           while (rs.next()) {//获取字符

              System.out.println(rs.getString("id")+" "+rs.getString("username")+" "+rs.getString("userpass")+

rs.getString("email"));

           }

           //执行sql语句

            stmt.executeUpdate(sql);  

       } catch (SQLException e) {

       e.printStackTrace();

       }finally {

           if(stmt!=null)

              try {

                  stmt.close();

                  //System.out.println("stmt已关闭");

              } catch (SQLException e) {

                  System.out.println("stmt关闭异常");

              }

           if(con!=null)

              try {

                  con.close();

                  //System.out.println("con已关闭");

              } catch (SQLException e) {

                  System.out.println("con关闭异常");

              }

       }

    }

}