惶恐指数(75) -_-|可能跟数据库大小写有关。加点调试代码查看一下。修改
for ( int i = 0; i < rsmd.getColumnCount(); i++ )
{
map.put(rsmd.getColumnName(i), rs.getString(i));
}
为
for ( int i = 0; i < rsmd.getColumnCount(); i++ )
{
System.out.println("map.put( " + rsmd.getColumnName(i) + " , " + rs.getString(i));
map.put(rsmd.getColumnName(i), rs.getString(i));
}这样就可以知道,往map中加入的ColumnName(i)是什么。如果为了省去注意大小写的麻烦,可以考虑全部加入大(或小)写字段名,比如:
//大写
map.put(rsmd.getColumnName(i).toUpperCase(), rs.getString(i));
//小写
map.put(rsmd.getColumnName(i).toLowerCase(), rs.getString(i));
for ( int i = 0; i < rsmd.getColumnCount(); i++ )
{
map.put(rsmd.getColumnName(i), rs.getString(i));
}
为
for ( int i = 0; i < rsmd.getColumnCount(); i++ )
{
System.out.println("map.put( " + rsmd.getColumnName(i) + " , " + rs.getString(i));
map.put(rsmd.getColumnName(i), rs.getString(i));
}这样就可以知道,往map中加入的ColumnName(i)是什么。如果为了省去注意大小写的麻烦,可以考虑全部加入大(或小)写字段名,比如:
//大写
map.put(rsmd.getColumnName(i).toUpperCase(), rs.getString(i));
//小写
map.put(rsmd.getColumnName(i).toLowerCase(), rs.getString(i));
解决方案 »
- 关于struts标签中url带jsessionid的问题,求助高手!在线等!
- struts2 增删查改 但是改就是不好使。。。求助~~
- 页面前端小问题,请各位帮忙。人在线 100分
- java,如何将一些配置放在缓存中?
- web程序的添加附加web程序的解决方案
- 高分求助,为何使用javamail发送邮件时出错?
- 一个关于国外电影中的电脑操作系统的问题
- eclipse怎么在server.xml中配置context?
- 关于接收servlet中session传过来的值!
- 使用git clone阿里dubbo项目报错
- 大家说说看JavaWebStudio这个东东怎么样?
- 怎么才以使用jfreechart生成半透明效果的图形?
map.put(**** , ****
...
我是5。0的
我
//大写
map.put(rsmd.getColumnName(i).toUpperCase(), rs.getString(i));
//小写
map.put(rsmd.getColumnName(i).toLowerCase(), rs.getString(i));取的时候
//大写
out.println(map.get("Name".toUpperCase()));
//小写
out.println(map.get("Name".toLowerCase()));
{
rs.next();
map.put(rsmd.getColumnName(i), rs.getString(i));
}
java.sql.SQLException:[Microsoft][ODBC Driver Manager]Invalid descriptor index
各位大哥看看哪里错了
谁能告诉我,为什么我就不能在dos模式下运行,看服务器端的情况呢?
有谁知道?
能否说的详细些?
那么,下面的步骤和以后的应用你都要受累了,呵呵。设置方法:
JAVA_HOME=x:\JDK_1.4.2PATH环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%\bin (注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME,你写成x:\JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo %JAVA_HOME%来看一下你的设置结果) :
PATH=%JAVA_HOME%\bin;%PATH%
同样,%PATH%是引用以前你设置的PATH环境变量,你照抄以前的值就行了。CLASSPATH环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。
CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
首先要注意的是最前面的".\;",如果你看不清,我给你念念——句点反斜杠分号。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞,这是由于LINUX的安全机制引起的,LINUX用户很明白,WINDOWS用户就很难理解(因为WINDOWS默认的搜索顺序是先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的) ,所以如果喜欢盘根究底的朋友不妨研究一下LINUX。
为什么CLASSPATH后面指定了tools.jar这个具体文件?不指定行不行?显然不行,行的话我还能这么罗索嘛! 这个是由java语言的import机制和jar机制决定的,你可以查资料解决。
呵呵,具体的设定方法: win2k\xp用户右键点击我的电脑->属性->高级->环境变量,修改下面系统变量那个框里的值就行了。
win9x用户修改autoexec.bat文件,在其末尾加入:
set JAVA_HOME=x:\JDK_1.4.2
set PATH=%JAVA_HOME%\bin;%PATH%
set CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
就可以了。
2004-10-1 0:36:04 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on port 8080
2004-10-1 0:36:04 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1542 ms
2004-10-1 0:36:04 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2004-10-1 0:36:04 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/5.0.19
2004-10-1 0:36:04 org.apache.catalina.core.StandardHost start
信息: XML validation disabled
2004-10-1 0:36:04 org.apache.catalina.core.StandardHost getDeployer
信息: Create Host deployer for direct deployment ( non-jmx )
2004-10-1 0:36:04 org.apache.catalina.core.StandardHostDeployer install
信息: Processing Context configuration file URL file:C:\Program Files\Apache Sof
tware Foundation\Tomcat 5.0\conf\Catalina\localhost\admin.xml
2004-10-1 0:36:05 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=tru
e
2004-10-1 0:36:05 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.action.ActionResources', returnNul
l=true
2004-10-1 0:36:06 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.webapp.admin.ApplicationResources', retur
nNull=true
2004-10-1 0:36:08 org.apache.catalina.core.StandardHostDeployer install
信息: Processing Context configuration file URL file:C:\Program Files\Apache Sof
tware Foundation\Tomcat 5.0\conf\Catalina\localhost\balancer.xml
2004-10-1 0:36:09 org.apache.catalina.core.StandardHostDeployer install
信息: Processing Context configuration file URL file:C:\Program Files\Apache Sof
tware Foundation\Tomcat 5.0\conf\Catalina\localhost\manager.xml
2004-10-1 0:36:09 org.apache.catalina.core.StandardHostDeployer install
信息: Installing web application at context path /jsp-examples from URL file:C:\
Program Files\Apache Software Foundation\Tomcat 5.0\webapps\jsp-examples
2004-10-1 0:36:09 org.apache.catalina.core.StandardHostDeployer install
信息: Installing web application at context path from URL file:C:\Program Files
\Apache Software Foundation\Tomcat 5.0\webapps\ROOT
2004-10-1 0:36:09 org.apache.catalina.core.StandardHostDeployer install
信息: Installing web application at context path /servlets-examples from URL fil
e:C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\servlets-exampl
es
2004-10-1 0:36:09 org.apache.catalina.core.StandardHostDeployer install
信息: Installing web application at context path /tomcat-docs from URL file:C:\P
rogram Files\Apache Software Foundation\Tomcat 5.0\webapps\tomcat-docs
2004-10-1 0:36:09 org.apache.catalina.core.StandardHostDeployer install
信息: Installing web application at context path /webdav from URL file:C:\Progra
m Files\Apache Software Foundation\Tomcat 5.0\webapps\webdav
2004-10-1 0:36:10 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on port 8080
2004-10-1 0:36:10 org.apache.jk.common.ChannelSocket init
信息: JK2: ajp13 listening on /0.0.0.0:8009
2004-10-1 0:36:10 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=30/60 config=C:\Program Files\Apache Software Founda
tion\Tomcat 5.0\conf\jk2.properties
2004-10-1 0:36:10 org.apache.catalina.startup.Catalina start
信息: Server startup in 5918 ms
YYYYY
XXXXX
ZZZZZ
AAAAA
BBBBB
CCCCC
java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的描述器索引
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLColAttributesString(JdbcOdbc.java:2668)
at sun.jdbc.odbc.JdbcOdbcResultSetMetaData.getColAttributeString(JdbcOdb
cResultSetMetaData.java:793)
at sun.jdbc.odbc.JdbcOdbcResultSetMetaData.getColumnName(JdbcOdbcResultS
etMetaData.java:355)
at firm.confirm.executeQuery(confirm.java:48)
at org.apache.jsp.aaa_jsp._jspService(aaa_jsp.java:89)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:311)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
01)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:257)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:567)
at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:199)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:567)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:184)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:164)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:567)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:567)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:20
6)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:833)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:732)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:619)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:688)
at java.lang.Thread.run(Thread.java:534)
package firm;
import java.sql.*;
import java.lang.*;
import java.util.*;public class confirm {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:actonline";
private Connection conn = null;
private Statement stmt = null;
ResultSet rs = null;
//注册数据库驱动程序
public confirm() {
try{
Class.forName(sDBDriver);
}catch(java.lang.ClassNotFoundException e){
System.err.println("confirm():" + e.getMessage());
}
catch(Exception ex){
System.err.println("confirm():" + ex.getMessage());
}
}
//建立数据库连接及定义数据查询
public List executeQuery(String sql)
{
List list = new ArrayList();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try
{
System.out.println("YYYYY");
Class.forName(sDBDriver);
System.out.println("XXXXX");
conn = DriverManager.getConnection(sConnStr);
System.out.println("ZZZZZ");
stmt = conn.createStatement();
System.out.println("AAAAA");
rs = stmt.executeQuery(sql);
System.out.println("BBBBB");
ResultSetMetaData rsmd = rs.getMetaData();
System.out.println("CCCCC");
while ( rs.next() )
{
System.out.println("DDDDD");
Map map = new HashMap();
for ( int i = 0; i < rsmd.getColumnCount(); i++ )
{
System.out.println("map.put("+rsmd.getColumnName(i)+","+rs.getString(i));
map.put(rsmd.getColumnName(i), rs.getString(i));
}
list.add(map);
}
}
catch ( Exception e )
{
e.printStackTrace();
}
finally
{
try
{
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
}catch (Exception e) {
e.printStackTrace();
}
}
return list;
}//定义数据操作
public void executeUpdate(String sql){
stmt = null;
try{
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement();
stmt.executeQuery(sql);
stmt.close();
conn.close();
}catch(SQLException ex){
System.err.println("aq.executeQuery:" + ex.getMessage());
}
}
//关闭数据库连接
public void closeStmt(){
try{
stmt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
public void closeConn(){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
-----------------------------------------------------------
jsp为:<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>测试</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<jsp:useBean id= "confirm" scope="page" class="firm.confirm" />
<%
String name = request.getParameter("name");
if(name==null)
name="";
else
name = new String(name.getBytes("ISO8859-1"));
String password = request.getParameter("password");
if(password==null)
password="";
else
password = new String(password.getBytes("ISO8859-1"));
String type = request.getParameter("type");
if(type==null)
type="";
else
type = new String(type.getBytes("ISO8859-1"));
out.println(name);
out.println(password);
out.println(type);
String sql= "select * from student;";
List list = confirm.executeQuery(sql);
if(list.size()==0)
out.println("没有记录!");
else
{
for ( int i = 0; i < list.size(); i++ )
{
Map map = (Map)list.get(i);
out.println(map.get("name"));
out.println(map.get("xuehao"));
out.println(map.get(""));
}
}
%></body>
</html>
JDBC-ODBC桥
http://dev.csdn.net/article/35/article/38/38344.shtm问题,actonlin这个连接池你设置了吗?
actonline是我在sql2000中建的数据库名
难道是加
jdbc:odbc:sql2000?
能告诉我你的邮箱吗,我把odbc截屏发给你看看
// 使用微软的jdbc驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//数据库名, 用户名, 密码要改成你的数据库相应摄设置。
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名;SelectMethod=cursor", "用户名", "密码");
我把代码改了一下,在for循环中加入两行,fffff和ggggg
但是tomcat dos状态看到的是fffff,ggggg没有显示,说明可能System.out.println("map.put("+rsmd.getColumnName(i)+","+rs.getString(i));这句有错看看这句中rs.getString(i)有没有问题呢?
while ( rs.next() )
{
System.out.println("DDDDD");
Map map = new HashMap();
System.out.println("EEEEE");
for ( int i = 0; i < rsmd.getColumnCount(); i++ )
{
System.out.println("FFFFF");
System.out.println("map.put("+rsmd.getColumnName(i)+","+rs.getString(i));
System.out.println("GGGGG");
map.put(rsmd.getColumnName(i), rs.getString(i));
}
list.add(map);
}
我以前用insert语句调用executeupdate函数的时候
是可以连到数据库加数据的!
{
map.put(rsmd.getColumnName(i), rs.getString(i));
}
但是现在还没有完全正确,读这段代码时
for ( int i = 1 ;i <= rsmd.getColumnCount(); i++ )
{
System.out.println("FFFFF");
System.out.println("map.put("+rsmd.getColumnName(i)+","+rs.getString(i)+")");
System.out.println("GGGGG");
map.put(rsmd.getColumnName(i), rs.getString(i));
System.out.println("AAAAA");
}
还是有错,dos中看这段代码是对的System.out.println("map.put("+rsmd.getColumnName(i)+","+rs.getString(i)+")");但是读到map.put(rsmd.getColumnName(i), rs.getString(i));这里时,报错
我看put函数中加的两个都是object,但是两个get都是返回string,问题是不是在这里
tomcat dos下报错是java.sql.SQLException:No data found
但是rsmd我没有看到有类似能返回object的函数啊
有没有返回object的函数啊???
System.out.println(rs.getString(i));看看是哪里得到null值。Map.put(Object, Object) 因为对象都会从Object类派生,是Object子类。所以任何对象都可以put进去。
System.out.println("map.put(" + rsmd.getColumnName(i) + "," + (rs.getString(i)) == null ? "" : rs.getString(i)) + ")");
System.out.println("GGGGG");
map.put(rsmd.getColumnName(i), rs.getString(i) == null ? "" : rs.getString(i));
启动不起来了,光盘有放在公司,原来打算国庆做点东西的,埃
看了只能等6号回去了不过还是十分感谢!
过几天结贴送分.PS:你在哪里混啊
http://www.codestudy.net/download/list.asp?id=296
http://www.codestudy.net/download/list.asp?id=287
4合1
http://www.bzmc.edu.cn/fdownload/Psql2k_4in1.iso
ftp://youngcow.net/Special/Database/DatabaseServer/MSSQLServer/2000/SQL%20Server%202000%204in1en.iso
ftp://219.138.202.212/codestudy/download/software/program/gbsqlserver.rar
SQL SERVER 2000
professional版
http://cwb.crfeb5.com.cn/download/sql2000pro.rar
server版
http://www.fzgzs.com/download/SoftView/SoftView_122.html
http://www.yc368.com/mdftr/view.asp?id=8SQL Server 2000 Service Pack 3a
http://download.microsoft.com/download/d/d/e/dde427eb-0296-4eac-a47c-d11a66b03816/chs_sql2ksp3.exe补丁集
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=9032f608-160a-4537-a2b6-4cb265b80766