⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmhttpdb.jsp

📁 用JAVA WEB编程中的jsp开发的一个留言本系统功能比较完整。是一个完整系统
💻 JSP
📖 第 1 页 / 共 2 页
字号:
				}

				return MarshallRecordsetIntoHTML(aResultSet);
			}
		}
	}
	catch (Exception e)
	{
		return HandleException(e);
	}

	return null;
}


public String SupportsProcedure(Connection aConn)
{
	String status = "true";

	try 
	{
		if ((aConn!=null) && !aConn.isClosed())
		{
			DatabaseMetaData dm = aConn.getMetaData();

			if (dm != null)
			{
				String pTerm = dm.getProcedureTerm();

				if (pTerm != null)
				{
					if (pTerm.equals("QUERY"))
					{
						status = "false";
					}
				}

				String xmlOutput = "";
				xmlOutput = xmlOutput + "<SUPPORTSPROCEDURE status=";
				xmlOutput = xmlOutput + status;
				xmlOutput = xmlOutput + "></SUPPORTSPROCEDURE>";
				return xmlOutput;

			}
		}
	}
	catch (Exception e)
	{
		String xmlOutput ="<SUPPORTSPROCEDURE status=true></SUPPORTSPROCEDURE>";
		return xmlOutput;
	}

	return null;
}

public String ReturnsResultSet(Connection aConn,String ProcName, String SchemaName , String CatalogName) 
{

	String status = "false";

	try 
	{
		if ((aConn!=null) && !aConn.isClosed() && (ProcName!=null) && (ProcName.length()>0))
		{
			DatabaseMetaData dm = aConn.getMetaData();

			if (dm != null)
			{
				if ((CatalogName != null) && (CatalogName.length()==0))
				{
					CatalogName = null;
				}

				if ((SchemaName != null) && (SchemaName.length()==0))
				{
					SchemaName = null;
				}

				ResultSet aResultSet = dm.getProcedures(CatalogName,SchemaName,ProcName);
				aResultSet.next();
				if (aResultSet != null)
				{
					int pType = aResultSet.getInt("PROCEDURE_TYPE");

					if (pType == DatabaseMetaData.procedureNoResult)
					{
						status = "false";
					}
					else if (pType == DatabaseMetaData.procedureReturnsResult)
					{
						status = "true";
					}
					else if (pType == DatabaseMetaData.procedureResultUnknown)
					{
						status = "true";
					}
				}

				String xmlOutput = "";
				xmlOutput = xmlOutput + "<RETURNSRESULTSET status=";
				xmlOutput = xmlOutput + status;
				xmlOutput = xmlOutput + "></RETURNSRESULTSET>";
				return xmlOutput;

			}
		}
	}
	catch (Exception e)
	{
		String xmlOutput = "<RETURNSRESULTSET status=false></RETURNSRESULTSET>";
		return xmlOutput;
	}

	return null;
}


public String TestOpen(Connection aConn)
{
	try 
	{
		if ((aConn!=null) && !aConn.isClosed())
		{
			String xmlOutput = "<TEST status=true</TEST>";
			return xmlOutput;
		}
		else
		{
			String xmlOutput = "<TEST status=false</TEST>";
			return xmlOutput;
		}
	}
	catch (Exception e)
	{
			String xmlOutput = "<TEST status=false</TEST>";
			return xmlOutput;
	}
}


public String MarshallRecordsetIntoHTML(ResultSet aResultSet)
{
	String xmlOutput = "";

	try 
	{
		if (aResultSet != null)
		{
			xmlOutput = xmlOutput + "<RESULTSET>";
			xmlOutput = xmlOutput + "<FIELDS>";

			ResultSetMetaData rMetaData = aResultSet.getMetaData();

			boolean bUseProc = false;
			int n = rMetaData.getColumnCount();
			int someTypeFlags[] = new int[n];
			for(int i = 1; i <= n; i++)
			{
				someTypeFlags[i - 1] = IsDefaultType;

				xmlOutput = xmlOutput + "<FIELD";
				xmlOutput = xmlOutput + " type=\"";
				xmlOutput = xmlOutput + rMetaData.getColumnTypeName(i);
				xmlOutput = xmlOutput + "\"";

				xmlOutput = xmlOutput + " definedSize=\"-1\"";
				xmlOutput = xmlOutput + " actualsize=\"-1\"";

				xmlOutput = xmlOutput + " precision=\"";
				xmlOutput = xmlOutput + rMetaData.getPrecision(i);
				xmlOutput = xmlOutput + "\"";

				xmlOutput = xmlOutput + " scale=\"";
				xmlOutput = xmlOutput + rMetaData.getScale(i);
				xmlOutput = xmlOutput + "\"";

				xmlOutput = xmlOutput + "><NAME>";

				String colName = rMetaData.getColumnName(i);
				String colNameUpper = colName.toUpperCase();

				if (colNameUpper.equals("TABLE_CAT"))
				{
					colName = "TABLE_CATALOG";
				}
				else if (colNameUpper.equals("TABLE_SCHEM"))
				{
					colName = "TABLE_SCHEMA";
				}
				else if (colNameUpper.equals("PROCEDURE_CAT"))
				{
					colName = "PROCEDURE_CATALOG";
					bUseProc = true;
				}
				else if (colNameUpper.equals("PROCEDURE_SCHEM"))
				{
					colName = "PROCEDURE_SCHEMA";
					bUseProc = true;
				}
				else if (colNameUpper.equals("COLUMN_TYPE"))
				{
					if (bUseProc)
					{
						colName = "PARAMETER_TYPE";
						someTypeFlags[i - 1] = IsParamType;
					}
					else
					{
						someTypeFlags[i - 1] = IsDataType;
					}
				}
				else if (colNameUpper.equals("DATA_TYPE"))
				{
						someTypeFlags[i - 1] = IsDataType;
				}
				else if (colNameUpper.equals("COLUMN_NAME"))
				{
					if (bUseProc)
					{
						colName = "PARAMETER_NAME";
					}
				}
				xmlOutput = xmlOutput + colName;
				xmlOutput = xmlOutput + "</NAME></FIELD>";
			}
			xmlOutput = xmlOutput + "</FIELDS>";

			xmlOutput = xmlOutput + "<ROWS>";
			while (aResultSet.next())
			{
				xmlOutput = xmlOutput + "<ROW>";
				for(int i = 1; i <= n; i++)
				{
					xmlOutput = xmlOutput + "<VALUE>";
					String aObject = aResultSet.getString(i);
					if (aObject != null)
					{
						if(someTypeFlags[i - 1] == IsParamType)
						{
							aObject  = MapParameterType2UD(aObject);
						}
						else if(someTypeFlags[i - 1] == IsDataType)
						{
							String TypeName = aResultSet.getString("TYPE_NAME");
							aObject = TypeName;
						}

						xmlOutput = xmlOutput + aObject;
					}
					xmlOutput = xmlOutput + "</VALUE>";
				}
				xmlOutput = xmlOutput + "</ROW>";
			}
			xmlOutput = xmlOutput + "</ROWS>";
			xmlOutput = xmlOutput + "</RESULTSET>";
			aResultSet.close();
		}
	}
	catch (Exception e)
	{
		return HandleException(e);
	}

	return xmlOutput;
}

public String HandleException(Exception e)
{
	String xmlOutput = "";
	String message = "";

	if (e instanceof java.lang.ClassNotFoundException)
	{
		message = e.getMessage() + " Class not found";
	}
	else
	{
		message = e.getMessage();
	}

	xmlOutput = xmlOutput + "<ERRORS>";
	xmlOutput = xmlOutput + "<ERROR";
	xmlOutput = xmlOutput + " Source=\"\"";
	xmlOutput = xmlOutput + " Identification=\"\"";
	xmlOutput = xmlOutput + " HelpFile=\"\"";
	xmlOutput = xmlOutput + " HelpContext=\"\"";
	xmlOutput = xmlOutput + "><DESCRIPTION>";
	xmlOutput = xmlOutput + message;
	xmlOutput = xmlOutput + "</DESCRIPTION></ERROR>";
	xmlOutput = xmlOutput + "</ERRORS>";

	return xmlOutput;
}

public String MapParameterType2UD(String parameterTypeName)
{
	String retType="";

	try 
	{
		int iType = Integer.parseInt(parameterTypeName);

		switch (iType)
		{
			case java.sql.DatabaseMetaData.procedureColumnIn:
			{
				retType="1";
				break;
			}
			case java.sql.DatabaseMetaData.procedureColumnInOut:
			{
				retType="3";
				break;
			}
			case java.sql.DatabaseMetaData.procedureColumnOut:
			{
				retType="2";
				break;
			}
			case java.sql.DatabaseMetaData.procedureColumnReturn:
			{
				retType="4";
				break;
			}
			case java.sql.DatabaseMetaData.procedureColumnResult:
			{
				retType="5";
				break;
			}
			default:
			{
				retType = parameterTypeName;
				break;
			}
		}
	}
	catch (Exception e)
	{
		retType = "";
	}

	return retType;
}

public String MapSQLType2Name(String typeIntName)
{
	String retType="";

	try 
	{
		int iType = Integer.parseInt(typeIntName);

		switch (iType)
		{
			case -5:
			{
				retType="bigint";
				break;
			}
			case -2:
			{
				retType="binary";
				break;
			}
			case -7:
			{
				retType="bit";
				break;
			}
			case 1:
			{
				retType="char";
				break;
			}
			case 91:
			{
				retType="date";
				break;
			}
			case 3:
			{
				retType = "decimal";
				break;
			}
			case 8:
			{
				retType = "double";
				break;
			}
			case 6:
			{
				retType = "float";
				break;
			}
			case 4:
			{
				retType = "integer";
				break;
			}
			case -4:
			{
				retType = "longvarbinary";
				break;
			}
			case -1:
			{
				retType = "longvarchar";
				break;
			}
			case 0:
			{
				retType = "null";
				break;
			}
			case 2:
			{
				retType = "numeric";
				break;
			}
			case 1111:
			{
				retType = "other";
				break;
			}
			case 7:
			{
				retType = "real";
				break;
			}
			case 5:
			{
				retType = "smallint";
				break;
			}
			case 92:
			{
				retType = "time";
				break;
			}
			case 93:
			{
				retType = "timestamp";
				break;
			}
			case -6:
			{
				retType = "tinyint";
				break;
			}
			case -3:
			{
				retType = "varbinary";
				break;
			}
			case 12:
			{
				retType = "varchar";
				break;
			}
			default:
			{
				retType = typeIntName;
				break;
			}
		}
	}
	catch (Exception e)
	{
		retType = "";
	}

	return retType;
}


%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -