Jsp使用jdbc连接sqlserver 2005的问题
Java程序如下:
package s2jsp.sg.ch03;
import java.sql.*;
public class NewFirstTitleDB1 {
public static void main(String[] args){
Connection con=null; //声明一个连接的对象
Statement statement=null; //声明一个statement对象
try{
String strSql="insert into FirstLevelTitle values(4,'军事','网管',getdate())";
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException e){
System.out.println("无法找到驱动类!");
}
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=news","sa","lishiyuzuji");
statement=con.createStatement();
System.out.println(statement.executeUpdate(strSql));
}catch(SQLException sqlE){
sqlE.printStackTrace();
}finally{
closeStatement(statement);
closeConnection(con);
}
}
public static void closeStatement(Statement stat){
try{
if(stat!=null){
stat.close();
stat=null;
}
}catch(SQLException e){
e.printStackTrace();
}
}
public static void closeConnection(Connection dbConnection){
try{
if(dbConnection!=null&&(!dbConnection.isClosed())){
dbConnection.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
在使用jdbc的纯java方式连接数据库的时候遇到的问题:“到主机的TCP/ip连接失败,如下图所示。
第一步:出现这种问题首先:是否开启sqlserver服务
第二步:如果sqlserver服务已经开启还是出现上面同样的问题,就可能是sqlserver的网络配置服务没有开启,因为默认的是禁用的。
开启方法:打开sql的配置工具里的SQL Server Configuration Manager,如下图的界面:
选择其中的SQLEXPRESS协议,右边会出现如图的界面,双击TCP/IP,启用它;点击客户端协议,同样的启动他的tcp/ip协议。运行你的java程序
第三步:上面的设置没有问题,但问题依旧出现。那就要看看sqlserver提供的端口是否是1433端口了,后来证明我的错误就是在这里我的不是1433而是1942,郁闷了我一个上午。
还是在上的这个界面里操作,双击右边的TCP/IP,出现如下图的窗口:
这里的TCP动态端口就是sqlserver提供的端口,看看你程序中的“数据库连接字符串“的端口是否和其一致。或者将TCP动态端口更改问默认的1433.问题一切就ok了。