数据库 表名:Book 创建如下
use jspdev;
create table book(bookId varchar(50),bookName varchar(50),publisher varchar(100),price float,constraint pk_book primary key(bookId));
insert into book values('001-22-23-1','jsp 应用开发详解','电子工业出版社',59.0);
use jspdev;
create table book(bookId varchar(50),bookName varchar(50),publisher varchar(100),price float,constraint pk_book primary key(bookId));
insert into book values('001-22-23-1','jsp 应用开发详解','电子工业出版社',59.0);
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:498)
at org.apache.jsp.testMssql_jsp._jspService(testMssql_jsp.java:103)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
…… ………… 还有很多这样的错误行
=============
显示有错误吗?把错误代码贴出来。
Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev","jspdev","jspdev");
错误在上面这句,产生的原因是你的给的数据库用户名或者密码是错误的
=====
另外通常情况想下面这样做,
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev";//注:DatabaseName是你所使用的数据库名
String user="jspdev";//数据库的用户名
String password="jspdev";//数据库的登陆密码
Connection con=DriverManager.getConnection(url,user,password);
好处的便于以后的维护或者是升级
try{
数据库操作
}catch(Exception e){
处理异常情况
}finally{
释放资源(关闭结果集、连接等)
}
--------------------------------------------
我用的是Windows身份验证模式 登陆数据库的 难道是登陆模式产生的错误么 看来我需要从新装上数据库 选择混合模式登陆
菜鸟关注中
E:\JBuilder9\jdk1.4\bin\javaw -classpath "E:\Accp\practice\J2EE\ch04\classes;E:\JBuilder9\lib\mssqldriver\msbase.jar;E:\JBuilder9\lib\mssqldriver\mssqlserver.jar;E:\JBuilder9\lib\mssqldriver\msutil.jar;E:\JBuilder9\jdk1.4\demo\jfc\Java2D\Java2Demo.jar;E:\JBuilder9\jdk1.4\demo\plugin\jfc\Java2D\Java2Demo.jar;E:\JBuilder9\jdk1.4\jre\lib\charsets.jar;E:\JBuilder9\jdk1.4\jre\lib\ext\dnsns.jar;E:\JBuilder9\jdk1.4\jre\lib\ext\ldapsec.jar;E:\JBuilder9\jdk1.4\jre\lib\ext\localedata.jar;E:\JBuilder9\jdk1.4\jre\lib\ext\sunjce_provider.jar;E:\JBuilder9\jdk1.4\jre\lib\im\indicim.jar;E:\JBuilder9\jdk1.4\jre\lib\jaws.jar;E:\JBuilder9\jdk1.4\jre\lib\jce.jar;E:\JBuilder9\jdk1.4\jre\lib\jsse.jar;E:\JBuilder9\jdk1.4\jre\lib\rt.jar;E:\JBuilder9\jdk1.4\jre\lib\sunrsasign.jar;E:\JBuilder9\jdk1.4\lib\dt.jar;E:\JBuilder9\jdk1.4\lib\htmlconverter.jar;E:\JBuilder9\jdk1.4\lib\tools.jar" ch04.conSQL
java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at ch04.conSQL.main(conSQL.java:47)
java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]Error establishing socket.那位高手给看一下,多谢!真的只能重装SQL Server吗?
http://www.microsoft.com/downloads/details.aspx?FamilyID=07287b11-0502-461a-b138-2aa54bfdc03a&DisplayLang=en#filelist
----------------------------------
将msbase.jar, mssqlserver.jar,msutil.jar 三个文件
拷贝到比如:你的程序目录\WEB-LIB\lib
-----------------------------------
2.把jdbc驱动中三个JAR文件COPY到我的\JRE\LIB\EXT下(不用设置classpath)
----------------
测试,不用建表,用的是sql中的表
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user="sa"; //用户名
String password=""; //密码
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from jobs";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
<%=rs.getString(1)%>
<%}%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
Error establishing socket
----------------------------------
楼主想想,驱动程序肯定正确没问题,代码这么多高手都看了,也正确。大概在程序访问数据库时连接不到。这样,首先要考虑的是用户有没那权限访问,没问题的话,大概肯定能的(混合模式)。其次,数据库端口是不是开着,如果没打开到1433端口,肯定连不到(套节子不能建立)。
以前我用WINDOWS203,SQL2000 SP2 也出现这问题。TELNET不到1433。查资料,原来是Microsoft在WINSOWS2003中,安装数据库时,封了连接端口,我打了SP3,访问成功。
大概,我就知道怎么多。如果不是这问题,我也无能为力了。