建议再看看mssql驱动程序的资料文档,应该是下面这句出错。
String url ="jdbc:microsoft:sqlserver://"+dbip+":1433/"+use+"?user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=gb2312" ;
String url ="jdbc:microsoft:sqlserver://"+dbip+":1433/"+use+"?user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=gb2312" ;
解决方案 »
- 查询数据库之后分页显示结果的问题
- 同一段js图片轮显的代码,在DW里面贴两次就冲突了,改了div的id无效,跪求指教
- mysql+ssh(Save保存报错)
- 2到面试题,大家来看那看
- struts request.setAttribute 失效
- ( !高手请进!)两个web应用相互访问
- 现在有没有中文j2ee的api servlet的有没 ?
- 关于用javascript调用outlook的问题,谢谢了
- jsp报错信息,谁能告诉我到底是什么错误
- OGNL表达式获取request传来的ArrayList中的DTO的父类的属性
- 请问如何解决JSP连接SQL SERVER的问题?
- 如何实现jsp中的数据库连接?
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
<%
final String connStr = "jdbc:mysql://127.0.0.1/ddd";
final String connUser="sa";
final String connPwd="";
java.sql.Connection connDB =null;
java.sql.Statement stmt=null;
java.sql.Statement stmt1=null;
Class.forName("org.gjt.mm.mysql.Driver");
connDB = DriverManager.getConnection(connStr, connUser, connPwd);
stmt = connDB.createStatement();
%>
我像你这样改过,还是不行,TOMCAT没反应,但页面出现这样的错误:
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 6.
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:463)
at org.apache.jsp.ly$jsp._jspService(ly$jsp.java:309)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
at java.lang.Thread.run(Thread.java:484)
最好你再重新下载一个,我以前也遇到同样的问题,就是这么解决的,(驱动要是英文的!)也可能是URL出了问题!
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 6.
<%@page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>留言本</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="images/web.css" rel="stylesheet" type="text/css">
</head>
<script language="JavaScript">
function openw(url) {
var newwin=window.open(url,"NewWin","toolbar=no,resizable=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,top=220,left=220,width=500,height=330");
// newwin.focus();
return false;
}
function opend(url) {
var newwin=window.open(url,"NewWin","toolbar=no,resizable=yes,location=no,directories=no,status=no,menubar=no,scrollbars=no,top=100,left=50,width=650,height=350");
// newwin.focus();
return false;
}
</script>
<body leftmargin="0" topmargin="1">
<jsp:useBean id="wu" scope="page" class="wu.jdbc" />
<%
Connection con = wu.getConn() ;
Statement stmt = con.createStatement() ;
String sql = "select * from liuyan_temp order by id desc" ;
ResultSet rs = stmt.executeQuery(sql) ;
String pages = request.getParameter("page") ;
int pageInt = 1 ,i=1;
if(pages==null){}else{pageInt = Integer.parseInt(pages);}
while(i<20*(pageInt-1)&&rs.next()){i++ ;}
%>
<table width="775" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td align="center"><img src="images/logo.gif" width="628" height="59" border="1"></td>
</tr>
<tr>
<td>
<table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#16831C">
<tr>
<td colspan="2" bgcolor="#E8FCE2">
<div align="center">
<table width="100%" border="0" cellpadding="1" cellspacing="1">
<tr>
<td><div align="center"><a href="#" onClick="return opend('ly_new.jsp')">添加留言</a></div></td>
<td><div align="center"><a href="http://www.china1024.com">返回主页</a></div></td>
<td><div align="center"><a href="login.jsp">留言管理</a></div></td>
<td><div align="center"><a href="#" onClick="return opend('my.jsp')">我的介绍</a></div></td>
</tr>
</table>
</div></td>
</tr>
<%
i=0 ;
String str = "#E8FCE2",str1="" ;
java.util.Random rd = new java.util.Random() ;
while(rs.next()&i<20){
i++ ;
String email = rs.getString("email") ;
String content = rs.getString("content") ;
if(str.equals("#E8FCE2")){
str = "#D1E79E" ;}else{
str = "#E8FCE2" ;
}
%>
<tr>
<td width="23%" bgcolor="<%=str%>">
<div align="center"><%=rs.getString("sj")%></div></td>
<td width="77%" bgcolor="<%=str%>">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td> <div align="center"><a href="<%=rs.getString("url")%>"><img src="images/HOME.gif" alt="个人主页" width="16" height="16" border="0" align="absmiddle"></a>留言人主页</div></td>
<td> <div align="center"><img src="images/ip.gif" alt="<%=rs.getString("ip")%>" width="13" height="15" align="absmiddle">留言人IP</div></td>
<td> <div align="center"><a href="mailto:<%=email%>"><img src="images/EMAIL.gif" alt="<%=email%>" width="16" height="16" border="0" align="absmiddle"></a>留言人email</div></td>
<td> <div align="center"><img src="images/oicq.gif" alt="<%=rs.getString("qq")%>" width="16" height="16" align="absmiddle">留言人QQ</div></td>
<td><a href="del.jsp?id=<%=rs.getString("id")%>">
<div align="center"><img src="images/dele_1.gif" alt="删除" width="14" height="16" border="0" align="absmiddle">删除留言</div>
</a></td>
</tr>
</table></td>
</tr>
<tr>
<td align="center" valign="middle" bgcolor="<%=str%>"><img src="images/tx/<%=rd.nextInt(30)+1%>.gif" width="100" height="100"><br>
<br>
留言人:<%=rs.getString("xm")%> </td>
<td bgcolor="#FFFFFF">
<%=content%>
</td>
</tr>
<%
}
%>
<tr bgcolor="#F9CDBB">
<td> </td>
<%
sql = "select count(*) from liuyan_temp" ;
rs = stmt.executeQuery(sql) ;
while(rs.next()) i = rs.getInt(1) ;
%>
<td>
<div align="right">总共有留言<%=i%>条/<%=(i+19)/20%>页,这是第<%=pageInt%>页,转到第
<%
for(int j=1;j<(i+40)/20;j++){
%>
<a href="ly.jsp?page=<%=j%>">^<%=j%>^</a>
<%
}
try {
rs.close();
stmt.close();
con.close();
}
catch (Exception ex) {
}
%>
页</div></td>
</tr>
<tr>
<td bgcolor="<%=str%>"> </td>
<td bgcolor="<%=str%>"> </td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</body>
</html>
对了,
应该是驱动不行,建议下载,如果还不是很熟练,建议用桥连接!
String pass = "" ;
String url ="jdbc:microsoft:sqlserver://"+dbip+":1433/"+use+"?user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=gb2312" ;
conn= DriverManager.getConnection(url);
--------------------------------------------------
String userName = "sa";
String password = "" ;
String url = "jdbc:microsoft:sqlserver://"+hostName+":1433;DatabaseName="+dbName;
conn = DriverManager.getConnection(url,userName,password);
出现这种情况是数据库拥护权限不够吗,应该怎么设置?
分是我的,照我说的做没错啦!
JDBC使用数据库URL来说明数据库驱动程序。数据库URL类似于通用的URL,但SUN 在定义时作了一点简化,其语法如下:Jdbc:subprotocal:[node]/[database] 其中子协议(subprotocal)定义驱动程序类型,node提供网络数据库的位置和端口号,后面跟可选的参数。例如:String url=”jdbc:inetdae:myserver:1433?language=us-english&sql7=true” 表示采用inetdae驱动程序连接1433端口上的myserver数据库服务器,选择语言为美国英语,数据库的版本是mssql server 7.0。 java应用通过指定DriverManager装入一个驱动程序类。语法如下:Class.forName(“”);或Class.forName(“”).newInstance(); 然后,DriverManager创建一个特定的连接:Connection connection=DriverManager.getConnection(url,login,password); Connection接口通过指定数据库位置,登录名和密码连接数据库。Connection接口创建一个Statement实例执行需要的查询:Statement stmt=connection.createStatement(); Statement具有各种方法(API),如executeQuery,execute等可以返回查询的结果集。结果集是一个ResultSet对象。具体的可以通过jdbc开发文档查看。可以sun的站点上下载/*下面是一个我用微软的JDBC 驱动连接数据库并打印出取得的数据的例子
*可以到微软的站点下载JDBC驱动,
*windows版的下载地址为http://download.microsoft.com/download/SQLSVR2000/jdbc/2000/NT45XP/EN-US/setup.exe
*安装后要将 安装目录下 lib子目录中的msbase.jar,mssqlserver.jar,msutil.jar加入到classpath中
*/
import java.sql.*;
class Testcon{
public static void main(String[] args){
String url="jdbc:microsoft:sqlserver://www:1433"; //服务器地址及端口
String login="sa"; //用户名
String password="123456"; //密码
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //指定驱动程序名称
DriverManager.setLoginTimeout(10);
Connection connection=DriverManager.getConnection(url,login,password);
DatabaseMetaData conMD= connection.getMetaData();
System.out.println("Driver Name:" + conMD.getDriverName()); //打印出驱动程序名称及版本信息
System.out.println("Driver Version:" + conMD.getDriverVersion());
connection.setCatalog("testdb"); //打开数据库
Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("select * from mytable");
while (rs.next()){ //将ResultSet中的数据输出来
for (int j=1;j <= rs.getMetaData().getColumnCount();j++){
System.out.print(rs.getObject(j) + "\t");
}
System.out.println();
}
rs.close(); //释放记录集及连接对象
st.close();
connection.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
/*以上程序在win2000,sqlserver2000,jdk1.3.1,SQL SERVRR JDBC Driver Version:2.1.0003 下调试通过
*/
for (int j=1;j <= rs.getMetaData().getColumnCount();j++){
System.out.print(rs.getObject(j) + "\t");
}
我照你这样改后,可是还是有问题,JBUILDER编译后提示如下:
java.sql.SQLException: No suitable driver at java.sql.DriverManager.getConnection(DriverManager.java:537) at java.sql.DriverManager.getConnection(DriverManager.java:177) at wu.jdbc.main(jdbc.java:12)
你的原程序中while(rs.next()&i<20){
这句问题很大,按照wuxk(从此醉)的写法才是对的。
重新下载个jdbc驱动再试。
JBUILDER编译后提示:
java.sql.SQLException: No suitable driver at java.sql.DriverManager.getConnection(DriverManager.java:537) at java.sql.DriverManager.getConnection(DriverManager.java:177) at wu.jdbc.main(jdbc.java:12)
不知道这个错误有没有关系,我现在的代码是按照wuxk(从此醉)改的:
package wu;import java.sql.*;
public class jdbc { public static void main(String[] args){
String url="jdbc:microsoft:sqlserver://localhost:1433"; //服务器地址及端口
String login="sa"; //用户名
String password=""; //密码
try{
DriverManager.setLoginTimeout(10);
Connection connection=DriverManager.getConnection(url,login,password);
DatabaseMetaData conMD= connection.getMetaData();
System.out.println("Driver Name:" + conMD.getDriverName()); //打印出驱动程序名称及版本信息
System.out.println("Driver Version:" + conMD.getDriverVersion());
connection.setCatalog("use"); //打开数据库
Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("select * from liuyan_temp");
while (rs.next()){ //将ResultSet中的数据输出来
for (int j=1;j <= rs.getMetaData().getColumnCount();j++){
System.out.print(rs.getObject(j) + "\t");
}
System.out.println();
}
rs.close(); //释放记录集及连接对象
st.close();
connection.close();
}catch(Exception e){
e.printStackTrace();
}
} public String ex_chinese(String str){
if(str==null){
str ="" ;
}
else{
try {
str = new String(str.getBytes("iso-8859-1"),"gb2312") ;
}
catch (Exception ex) {
}
}
return str ;
} public String gettime() {
String datestr = "" ;
try {
java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy年MM月dd日 HH点ss分") ;
java.util.Date date = new java.util.Date() ;
datestr = df.format(new java.util.Date()) ;
}
catch (Exception ex) { } return datestr ;
}
}
看问题到底出在哪里
<%@ 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=use";
//test你的数据库的
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 liuyan_temp";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>出现这种情况:
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error setting up static cursor cache.
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:463)
at org.apache.jsp.testmssql$jsp._jspService(testmssql$jsp.java:119)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:429)
at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:495)
at java.lang.Thread.run(Thread.java:484)
<%@page contentType="text/html;charset=GB2312" import="java.sql.*"%>
<html>
<head>
<title>ODBC数据来源链接的建立和关闭</title>
</head>
<body>
<center>
ODBC数据来源链接的建立和关闭
</center>
<p></p>
<hr>
<center>
<p></p>
要想链接成功必须要将你要链接的数据库(例:BOOKDB。MDB)先建立起来并且连入DNS中
</center>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conDB=DriverManager.getConnection("jdbc:odbc:BookDB");
//建立Connection(数据库链接)对象,并设置由cnnDB对象变量引用。
conDB.close(); //关闭数据库链接。
%>
<p></p>
<center>
<font size=4 color=red>完成</font>
</center>
</body>
</html>jdbc包中的3个jar包:msutil.jar,mssqlserver.jar,msbase.jar要在classpath里指一下
如果你的服务器是tomcat直接将3个jar包拷贝到tomcat\common\lib下就可以了
我开始看错了~这个才是JDBC直接连接的JAVA文件
import java.sql.*;
import com.microsoft.jdbc.sqlserver.SQLServerDriver;public class SqlJdbc
{
public static void main(String[] ares)
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String sourceURL ="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=MyData";
Connection databaseConnection =DriverManager.getConnection(sourceURL,"sa","");
System.out.println("成功连接到SQL2000!");
databaseConnection.close();
}
catch(ClassNotFoundException cnfe)
{
System.err.println(cnfe);
}
catch(SQLException sqle)
{
System.err.println(sqle);
}
}
}