sql server 20xx数据库编程

JDBC访问数据库

1、 安装Java1.6X+myeclipse(在myeclipse中配置JRE)

*在MyEclipse的菜单栏中选择【Window→Preferences】命令,在弹出的Preferences窗口中选择【Java→Installed JREs】选项,将打开一窗口,其中有MyEclipse编写程序所使用的JRE列表。

*上图中在Installed JREs中选中的JRE是默认的JRE,它将被MyEclipse中所有的项目作为编译和启动的JRE,除非在项目的Build Path中指定了其他的JRE。

*添加新的JRE:单击Add按钮,在弹出的窗口中做相应的操作。具体过程见(MyEclipse

7.1中常用操作-配置JRE)

2、 安装JDBC驱动程序(jdk1.6X+ sqljdbc4.jar)

*驱动程序目录为【C:\SQLServer2008JDBC\sqljdbc_3.0\chs】

*配置环境变量

CLASSPATH =.;C:\SQLServer2008JDBC\sqljdbc_3.0\chs\sqljdbc4.jar

3、 在myeclipse环境中加载驱动程序包

*点击Project菜单中的菜单项Properties弹出一窗口

*点击【Add External JARs】加入

4、 程序源代码(项目名test_db)

sqlserver20xx数据库编程

1

test_db/src ch8

JDBCExample

sqlserver20xx数据库编程

sqlserver20xx数据库编程

sqlserver20xx数据库编程

2

Project菜单中的菜单项Properties弹出一窗口(或右击包资源管理器项目-属性弹出)

sqlserver20xx数据库编程

sqlserver20xx数据库编程

3

点击【Add External JARs】加入

建立数据库及表并往表中插入数据(SQLServer 2008) *建立目录:D:\SQLServer2008_db

*执行文件:【4讲】删除并建立数据库jsj建表插入元组

sqlserver20xx数据库编程

sqlserver20xx数据库编程

*

4

package ch8;

import java.sql.*;

public class JDBCExample {

/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //System.out.println("Hello"); String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //格式固定不得修改 String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=jsj;user=sa;password=Yj123456;"; //字符串的最后一个;可以不要 String sql="insert into s(sno,sname)values(?,?)"; Connection con = null; try{

/*使用 Microsoft SQL Server JDBC Driver 与 SQL Server 数据库建立简单连接的快速入门指导

* 1)在连接到 SQL Server 数据库之前,必须首先在本地计算机或服务器上 * 2)并且必须在本地计算机上安装 JDBC 驱动程序。 * 3)选择正确的 JAR 文件。本机选sqljdbc4.jar,因以Java 运行时环境 * (1)Microsoft SQL Server JDBC Driver 提供两个类库文件: * 具体使用哪个文件取决于首选的 Java 运行时环境 (JRE) 设置。 * (2)sqljdbc4.jar 类库要求使用 6.0 或更高版本的 Java 运行时环境 * sqljdbc4.jar 类库提供对 JDBC 4.0 的支持。它不仅包括 * 在 JRE 1.4 或 5.0 上使用 sqljdbc4.jar 会引发异常。 * 有关选择哪个 JAR 文件的详细信息,请参阅 JDBC 驱动程序的系统要 * 4)设置 Classpath * JDBC Driver并未包含在Java SDK中。 * 如果要使用该驱动程序,必须将classpath设置为包含 sqljdbc4.jar * 如果 classpath缺少sqljdbc4.jar项或sqljdbc.jar项,应用程序将 * 必须确保 CLASSPATH语句仅包含一个Microsoft SQL Server JDBC 安装 SQL Server, (JRE) 为 6.0 或更高版本 sqljdbc.jar 和 sqljdbc4.jar, (JRE)。 sqljdbc.jar的所有功能,还包括新增的 JDBC 4.0 方法。 求。 文件或 sqljdbc.jar 文件。 引发“找不到类”的常见异常。 driver,例如sqljdbc4.jar或sqljdbc.jar。

5

* (1)用于 Windows应用程序的 CLASSPATH 语句示例(本机设置): * CLASSPATH * (2)在 IDE 中运行的应用程序(本机通过Myeclipse菜单项Project中 * 每个 IDE 供应商都提供了在 IDE 中设置 classpath 的不同方法。 * 仅在操作系统中设置 classpath 将无法正常工作。 * 必须将 sqljdbc.jar 或 sqljdbc4.jar 添加到 IDE * 5)可能出现的错误 * *在new Java Project时 JRE中的Use default * 与当前安装的版本号不一致 * *因为SqlServer2008的端口号1433未被监听。 */ Class.forName(driver); System.out.println("成功加载驱动程序类 "); con = DriverManager.getConnection(connectionUrl); } e.printStackTrace(); e.printStackTrace(); if(con!=null){ try{ con.close(); }catch(SQLException e){ e.printStackTrace();

6 =.;C:\SQLServer2008JDBC\sqljdbc_3.0\chs\sqljdbc4.jar 子菜单项Properties) classpath。 JRE(Currently'jdk1.6.0-21')中的缺省版本号 System.out.println("成功建立数据库连接 "); PreparedStatement pstmt = con.prepareStatement(sql); //pstmt.setString(1,"123456"); //pstmt.setString(2,"zhang fei"); //pstmt.executeUpdate(); sql="select * from s"; pstmt = con.prepareStatement(sql); ResultSet rs= pstmt.executeQuery(); while(rs.next()){ System.out.println(rs.getString("SNO")+rs.getString("SNAME")); }catch(ClassNotFoundException e){ }catch(SQLException e){ }finally{

} } } } }

运行结果错误提示:连接不上数据库的原因在于SqlServer2008的端口1433未被监听 成功加载驱动程序类 com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。

at

com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)

at

com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1033)

at

com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)

at

com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)

at

com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)

at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:207) at ch8.JDBCExample1.main(JDBCExample1.java:49)

5、 配置管理器(修改协议状态,停止并重启SQLServer,连接问题得到解决)

sqlserver20xx数据库编程

7

使用SQLServer的配置管理器将客户端与服务器的协议 改为只启用TCP/IP协议。重启计算机

只要将服务器端的协议改为(客户端没有做改动):

停止并重启SqlServer

6、

sqlserver20xx数据库编程

sqlserver20xx数据库编程

sqlserver20xx数据库编程

8

 

第二篇:sql server 20xx连接问题及解决

许多初学者在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远

程数据库实例的问题,大致的错误描述如下:

An error has occurred while establishing a connection to the server. (provider: Named Pipes Provider, error: 40 – Could not open a connection to

SQL Server) (Microsoft SQL Server, Error: 5)

An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft

SQL Server, Error: 1326)

意思是说不能在数据库之间建立一个连接,原因是命名管道提供者出现错误。其实这是一个比较典型的数据库服务器设置问题,在局域网或广域网中都可能会遇到,我们只需要对

数据库服务器进行一些配置便可以解决这个问题,来看看具体的步骤。

确保服务器端数据库服务已经启动

开始->所有程序->Microsoft SQL Server 2008->Configutation Tools,打开SQL Server Configuration Manager,点击SQL Server Services,查看数据库服务是否已经启动,如果服务未开启,手动启动它。当然,你还可以通过点击Windows中的开始->控制面板->管理者工具->服务,来查看相应的数据库服务是否启动。或者如果服务器和你的机器在同一网络,你还可以通过命令“sqlcmd -L”(注意L要大写)去查看该网络内所有可用的SQL Server

服务器。

sqlserver20xx连接问题及解决

在SQL Server Configuration中启用TCP/IP

多个SQL Server服务器之间通过网络相互通信是需要TCP/IP支持的,为使SQL Server

服务器能被远程连接必须确保TCP/IP已经启用。按照前面介绍的步骤打开SQL Server Configuration Manager,然后打开SQL Server Network Configuration,选择你要设置的数据库,然后点击TCP/IP,右键启用。如果有必要,你还可以启用Named Pipes。记住,所

有的修改都必须在重启SQL Server服务之后才能生效!

sqlserver20xx连接问题及解决

在Windows防火墙中打开SQL Server的端口号

很多时候我们在对数据库服务器本身做了很多次设置后仍然无法成功建立远程连接,这时就要考虑是否是防火墙在作怪。默认情况下,许多端口号和服务都会被防火墙所禁止而不能远程访问或执行,SQL Server默认的端口号也不例外。我们应该重新设置Windows防火墙给SQL Server添加例外。除非人为修改,默认情况下SQL Server的端口号是1433,将该端口号添加到Windows防火墙中。如果SQL Server存在命名实例,那么也应该将SQL Server browser添加到Windows防火墙中。(有关SQL Server的命名实例将在后面介绍) 打开Windows控制面板,选择Windows防火墙->Change Settings->Exceptions->Add

Port

sqlserver20xx连接问题及解决

sqlserver20xx连接问题及解决

点击Add port...在弹出的对话框中填入: Name: SQL

Port Number: 1433 Protocol: Select TCP

sqlserver20xx连接问题及解决

sqlserver20xx连接问题及解决

在SQL Server管理器中启用远程连接

这一步通常会被数据库管理员忽略,如果未启用数据库远程连接,数据库实例只允许在本地进行连接而不能被远程连接,启用远程连接同样非常重要。默认设置中远程连接是被禁止的。如下图,打开SQL Server Management Studio,右键点击数据库实例然后选择属性

菜单。

sqlserver20xx连接问题及解决

在打开的窗口中,左侧选择Connections,然后勾选"Allow remote connections to this

server"。

sqlserver20xx连接问题及解决

启用SQL Server Browser服务 如果SQL Server在安装时不是用的默认实例名而是自定义的实例名,并且没有配置特定的TCP/IP端口号,那么按照我们前面的描述SQL Server仍然不能支持远程连接。但如果你启用的SQL Server Browser服务,便可以通过动态TCP/IP端口号进行远程SQL Server连接。启用SQL Server Browser服务非常简单,与启用SQL Server类似,在SQL Server Configuration Manager中右键点击SQL Server Browser,然后选择启用。启用该服务将会

影响到服务器上所有已安装的SQL Server实例。

sqlserver20xx连接问题及解决

在防火墙中为sqlbrowser.exe应用程序创建例外

我们在前面已经提到了,自定义命名的SQL Server实例要支持远程连接需要启用

sqlbrowser服务,Windows防火墙可能会阻止该服务执行。因此,我们必须在Windows防火

墙中给sqlbrowser服务添加例外。

首先找到服务器上安装sqlbrowser.exe程序的路径,如C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe。如果不确定SQL Server安装在什么地方,你可以

在Windows搜索一下文件名。与我们在前面介绍的在防火墙中添加SQL TCP/IP端口号的方

法类似,给sqlbrowser.exe应用程序添加防火墙例外。

重新创建数据库别名

创建SQL Server别名并在应用程序中使用它很常见。使用数据库别名可以确保一旦数

据库的位置发生了变化,如更换了新的服务器,IP地址发生了变化等,应用程序中的数据

库连接字符串不用修改。否则你更换了数据库的位置,你还要通知所有使用该数据库的应用

程序修改源代码或配置文件中的连接字符串,这恐怕是不可能的。所以,使用数据库别名来

配置连接字符串是一个非常明智的选择。另外,你还可以使用相同的别名来指向不同的数据

库实例,当修改别名参数时,可以马上实现数据库之间的切换。创建数据库别名非常简单,

在SQL Server Configuration Manager中选择Aliases进行创建。

sqlserver20xx连接问题及解决

连接问题

The TCP/IP connection to the host local, port 1433 has failed. Error:

Connection refused: connect. Please verify the connection properties and

check that a SQL Server instance is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.

at

com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:130)

at

com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1195)

at

com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(SQLServerConnection.java:1054)

at

com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:758)

at

com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)

at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.sql.JavaConSQL.main(JavaConSQL.java:26)

相关推荐