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

📄 sqlhelper.java

📁 一些基本jsp
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			throw new NoodleSQLHelperException("类字段与返回数据字段数量不匹配");
		}
		
		String javaType = "";
		String jdbcType = "";
		
		for( int i=0; i<clazzFieldCount; i++ ){
			
			javaType = clazzFields[i].getType().getName();
			jdbcType = resMetaData.getColumnClassName(i+1);
			
			//System.out.println( "javaType is:["+javaType+"]" );
			//System.out.println( "jdbcType is:["+jdbcType+"]" );
			
			if( javaType.equals( "int" ) ){
				javaType = "java.lang.Integer";
			} else if( javaType.equals( "short" ) ){
				javaType = "java.lang.Short";
			} else if( javaType.equals( "long" ) ){
				javaType = "java.lang.Long";
			} else if( javaType.equals( "float" ) ){
				javaType = "java.lang.Float";
			} else if( javaType.equals( "double" ) ){
				javaType = "java.lang.Double";
			} else if( javaType.equals( "boolean" ) ){
				javaType = "java.lang.Boolean";
			} else if( javaType.equals( "byte" ) ){
				javaType = "java.lang.Byte";
			}
			
			if( jdbcType.trim().equals( "boolean" ) ){
				
				if( !(javaType.trim().equals( "byte" )) 
				 || !(javaType.trim().equals( "java.lang.Byte" )) ){
				 	
				 	//注意有byte[]的未处理
					logger.error( this.getClass().getName()+"executeQuery( String sqlString , Class clazz )"
									+"类字段类型与数据库返回类型不匹配,需要:[byte]或[java.lang.Byte]发现为:["+javaType+"]" );
					throw new NoodleSQLHelperException( "类字段类型与数据库返回类型不匹配" );
				 	
				}
			}
			
			if( !javaType.trim().equals( jdbcType.trim() ) ){
				
				//注意有byte[]的未处理
				logger.error( this.getClass().getName()+"executeQuery( String sqlString , Class clazz )"
								+"类字段类型与数据库返回类型不匹配,需要:["+jdbcType
								+"]发现为:["+javaType+"]" );
				throw new NoodleSQLHelperException( "类字段类型与数据库返回类型不匹配" );
				
			}
			
		}
		
			
		while( resultSet.next() ){
		
			{
				try{
					Object object = clazz.newInstance();
					
					String javaTypeName = "";
					String jdbcTypeName = "";
					
					//注意有byte[]的未处理
					for( int i=0; i<clazzFieldCount; i++ ){
												
						javaTypeName = clazzFields[i].getType().getName();
						jdbcTypeName = resMetaData.getColumnClassName(i+1);
						
						
						if( jdbcTypeName.equals( "java.sql.Array" ) ){
								
							clazzFields[i].set( object, resultSet.getArray( i+1 ) );
							
						} else if( jdbcTypeName.equals( "java.lang.Long" ) ){
							
							long tmpLong = resultSet.getLong( i+1 );
							
							if( resultSet.wasNull() ){
								tmpLong = 0;
							}
							
							if( javaTypeName.equals( "long" ) ){
								
								clazzFields[i].setLong( object, tmpLong );
								
							} else if( javaTypeName.equals( "java.lang.Long" ) ){
							
								clazzFields[i].set( object, new Long( tmpLong ) );
								
							}
							
						} else if( jdbcTypeName.equals( "java.lang.Boolean" ) ){
							
							boolean tmpBoolean = resultSet.getBoolean( i+1 );
							
							if( resultSet.wasNull() ){
								tmpBoolean = false;
							}
							
							if( javaTypeName.equals( "boolean" ) ){
							
								clazzFields[i].setBoolean( object, tmpBoolean );
								
							} else if( javaTypeName.equals( "java.lang.Boolean" )){
								
								clazzFields[i].set( object, new Boolean( tmpBoolean ) );
								
							}
							
						} else if( jdbcTypeName.equals( "java.sql.Blob" ) ){
							
							clazzFields[i].set( object, resultSet.getBlob( i+1 ) );
							
						} else if( jdbcTypeName.equals( "boolean" ) ){
							
							byte tmpByte = resultSet.getByte( i+1 );
							
							if( resultSet.wasNull() ){
								tmpByte = 0;
							}
							
							if( javaTypeName.equals( "byte" ) ){
							
								clazzFields[i].setByte( object, tmpByte );
								
							} else if( javaTypeName.equals( "java.lang.Byte" )){
								
								clazzFields[i].set( object, new Byte( tmpByte ) );
								
							}
							
						} else if( jdbcTypeName.equals( "java.lang.String" ) ){
							
							clazzFields[i].set( object, resultSet.getString( i+1 ) );
							
						} else if( jdbcTypeName.equals( "java.sql.Clob" ) ){
							
							clazzFields[i].set( object, resultSet.getClob( i+1 ) );
							
						} else if( jdbcTypeName.equals( "java.net.URL" ) ){
							
							clazzFields[i].set( object, resultSet.getURL( i+1 ) );
							
						} else if( jdbcTypeName.equals( "java.sql.Date" ) ){
							
							clazzFields[i].set( object, resultSet.getDate( i+1 ) );
							
						} else if( jdbcTypeName.equals( "java.math.BigDecimal" ) ){
							
							clazzFields[i].set( object, resultSet.getBigDecimal( i+1 ) );
							
						} else if( jdbcTypeName.equals( "java.lang.Double" ) ){
							
							double tmpDouble = resultSet.getDouble( i+1 );
							
							if( resultSet.wasNull() ){
								tmpDouble = 0;
							}
							
							if( javaTypeName.equals( "double" )){
							
								clazzFields[i].setDouble( object, tmpDouble );
								
							} else if( javaTypeName.equals( "java.lang.Double" ) ){
								
								clazzFields[i].set( object, new Double(tmpDouble) );
								
							}
						
						} else if( jdbcTypeName.equals( "java.lang.Integer" ) ){
							
							int tmpInt = resultSet.getInt( i+1 );
							
							if( resultSet.wasNull() ){
								tmpInt = 0;
							}
							
							if( javaTypeName.equals( "int" )){
								
								clazzFields[i].setInt( object, tmpInt );
								
							} else if( javaTypeName.equals( "java.lang.Integer" )){
								
								clazzFields[i].set( object, new Integer(tmpInt));
								
							}
							
						} else if( jdbcTypeName.equals( "java.lang.Object" ) ){
							
							clazzFields[i].set( object, resultSet.getObject( i+1 ) );
							
						} else if( jdbcTypeName.equals( "java.lang.Float" ) ){
							
							float tmpFloat = resultSet.getFloat( i+1 );
							
							if( resultSet.wasNull() ){
								tmpFloat = 0;
							}
							
							if( javaTypeName.equals( "float" )){
								
								clazzFields[i].setFloat( object, tmpFloat );
								
							} else if( javaTypeName.equals( "java.lang.Float" )){
								
								clazzFields[i].set( object, new Float( tmpFloat ) );
								
							}
							
						} else if( jdbcTypeName.equals( "java.lang.Short" ) ){
							
							short tmpShort = resultSet.getShort( i+1 );
							
							if( resultSet.wasNull() ){
								tmpShort = 0;
							}
							
							if( javaTypeName.equals( "short" )){
								clazzFields[i].setShort( object, tmpShort );
								
							} else if( javaTypeName.equals( "java.lang.Short" )){
								
								clazzFields[i].set( object, new Short(tmpShort) );
								
							}
							
						} else if( jdbcTypeName.equals( "java.sql.Time" ) ){
							
							clazzFields[i].set( object, resultSet.getTime( i+1 ) );
							
						} else if( jdbcTypeName.equals( "java.sql.Timestamp" ) ){
							
							clazzFields[i].set( object, resultSet.getTimestamp( i+1 ) );
							
						}	
					}
					
					resultList.add( object );
				} catch( SQLException e ){
						logger.error( "结果集解析失败:["+e.getErrorCode()+"]" );
						e.printStackTrace();
						throw e;
				}catch( Exception e ){
					logger.error( "executeQuery( String sqlString , Class clazz ) 在进行类反射时错误" );
					e.printStackTrace();
					throw e;
				}
			}
	
		}
		
		return resultList;
	}
	

//========================================================================================
	//ResultSet 包装器
	public List resultSetWraper( ResultSet resultSet, Class clazz, int bgnLine, int retLine ) throws SQLException, Exception {
		
		LinkedList resultList = new LinkedList();
		Field[] clazzFields = clazz.getDeclaredFields();
		int clazzFieldCount = clazzFields.length;
		int resultCount = 0;
		int resultRet = 0;
		
		ResultSetMetaData resMetaData = resultSet.getMetaData();
		int columnCount = resMetaData.getColumnCount();
		
		if( clazzFieldCount != columnCount ){
			logger.error( this.getClass().getName()+"executeQuery( String sqlString , Class clazz )"
							+"类字段与返回数据字段数量不匹配" );
			throw new NoodleSQLHelperException("类字段与返回数据字段数量不匹配");
		}
		
		String javaType = "";
		String jdbcType = "";
		
		for( int i=0; i<clazzFieldCount; i++ ){
			
			javaType = clazzFields[i].getType().getName();
			jdbcType = resMetaData.getColumnClassName(i+1);
			
			//System.out.println( "javaType is:["+javaType+"]" );
			//System.out.println( "jdbcType is:["+jdbcType+"]" );
			
			if( javaType.equals( "int" ) ){
				javaType = "java.lang.Integer";
			} else if( javaType.equals( "short" ) ){
				javaType = "java.lang.Short";
			} else if( javaType.equals( "long" ) ){
				javaType = "java.lang.Long";
			} else if( javaType.equals( "float" ) ){
				javaType = "java.lang.Float";
			} else if( javaType.equals( "double" ) ){
				javaType = "java.lang.Double";
			} else if( javaType.equals( "boolean" ) ){
				javaType = "java.lang.Boolean";
			} else if( javaType.equals( "byte" ) ){
				javaType = "java.lang.Byte";
			}
			
			if( jdbcType.trim().equals( "boolean" ) ){
				
				if( !(javaType.trim().equals( "byte" )) 
				 || !(javaType.trim().equals( "java.lang.Byte" )) ){
				 	
				 	//注意有byte[]的未处理
					logger.error( this.getClass().getName()+"executeQuery( String sqlString , Class clazz )"
									+"类字段类型与数据库返回类型不匹配,需要:[byte]或[java.lang.Byte]发现为:["+javaType+"]" );
					throw new NoodleSQLHelperException( "类字段类型与数据库返回类型不匹配" );
				 	
				}
			}
			
			if( !javaType.trim().equals( jdbcType.trim() ) ){
				
				//注意有byte[]的未处理
				logger.error( this.getClass().getName()+"executeQuery( String sqlString , Class clazz )"
								+"类字段类型与数据库返回类型不匹配,需要:["+jdbcType
								+"]发现为:["+javaType+"]" );
				throw new NoodleSQLHelperException( "类字段类型与数据库返回类型不匹配" );
				
			}
			
		}
		
			
		while( resultSet.next() ){
		
			{
				if( resultCount >= bgnLine ){
				
					if( resultRet >= retLine ){
						break;
					}
					
					try{
						Object object = clazz.newInstance();
						
						String javaTypeName = "";
						String jdbcTypeName = "";
						
						//注意有byte[]的未处理
						for( int i=0; i<clazzFieldCount; i++ ){
													
							javaTypeName = clazzFields[i].getType().getName();
							jdbcTypeName = resMetaData.getColumnClassName(i+1);
							
							
							if( jdbcTypeName.equals( "java.sql.Array" ) ){
									
								clazzFields[i].set( object, resultSet.getArray( i+1 ) );
								
							} else if( jdbcTypeName.equals( "java.lang.Long" ) ){
								
								long tmpLong = resultSet.getLong( i+1 );
								
								if( resultSet.wasNull() ){
									tmpLong = 0;
								}
								
								if( javaTypeName.equals( "long" ) ){
									
									clazzFields[i].setLong( object, tmpLong );
									
								} else if( javaTypeName.equals( "java.lang.Long" ) ){
								
									clazzFields[i].set( object, new Long( tmpLong ) );
									
								}
								
							} else if( jdbcTypeName.equals( "java.lang.Boolean" ) ){
								
								boolean tmpBoolean = resultSet.getBoolean( i+1 );
								
								if( resultSet.wasNull() ){
									tmpBoolean = false;
								}
								
								if( javaTypeName.equals( "boolean" ) ){
								
									clazzFields[i].setBoolean( object, tmpBoolean );
									
								} else if( javaTypeName.equals( "java.lang.Boolean" )){
									
									clazzFields[i].set( object, new Boolean( tmpBoolean ) );
									
								}
								
							} else if( jdbcTypeName.equals( "java.sql.Blob" ) ){
								
								clazzFields[i].set( object, resultSet.getBlob( i+1 ) );
								
							} else if( jdbcTypeName.equals( "boolean" ) ){
								
								byte tmpByte = resultSet.getByte( i+1 );
								
								if( resultSet.wasNull() ){
									tmpByte = 0;
								}
								
								if( javaTypeName.equals( "byte" ) ){
								
									clazzFields[i].setByte( object, tmpByte );
									
								} else if( javaTypeName.equals( "java.lang.Byte" )){
									
									clazzFields[i].set( object, new Byte( tmpByte ) );
									
								}
								
							} else if( jdbcTypeName.equals( "java.lang.String" ) ){
								
								clazzFields[i].set( object, resultSet.getString( i+1 ) );
								
							} else if( jdbcTypeName.equals( "java.sql.Clob" ) ){
								
								clazzFields[i].set( object, resultSet.getClob( i+1 ) );
								
							} else if( jdbcTypeName.equals( "java.net.URL" ) ){
								
								clazzFields[i].set( object, resultSet.getURL( i+1 ) );
								
							} else if( jdbcTypeName.equals( "java.sql.Date" ) ){
								
								clazzFields[i].set( object, resultSet.getDate( i+1 ) );
								
							} else if( jdbcTypeName.equals( "java.math.BigDecimal" ) ){
								
								clazzFields[i].set( object, resultSet.getBigDecimal( i+1 ) );
								
							} else if( jdbcTypeName.equals( "java.lang.Double" ) ){
								
								double tmpDouble = resultSet.getDouble( i+1 );
								
								if( resultSet.wasNull() ){
									tmpDouble = 0;
								}
								
								if( javaTypeName.equals( "double" )){
								
									clazzFields[i].setDouble( object, tmpDouble );

⌨️ 快捷键说明

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