All pastes #952153 Raw Edit

Mine

public text v1 · immutable
#952153 ·published 2008-03-21 22:50 UTC
rendered paste body
	else if (evt.getSource() == addNewEntryButton) {
		if ( con == null ) {
			Print("Not connected.");
			return;
		}
		try {
			boolean dataIsValid = true;
			java.sql.Date deadlineOfDelivery = null;
			// calling for invalid formats
			if (idField.getText().length() != 0 ) {
				try { Integer.parseInt(idField.getText()); }
				catch (NumberFormatException n) { 
					result.append("The ID field must contain an integer.\n"); 
					dataIsValid = false; 
				}
			}
			
			if ( dataIsValid ) {
				if ( 	!vehicleType.getText().equals("g")
						&& !vehicleType.getText().equals("c")
						&& !vehicleType.getText().equals("d")
						&& !vehicleType.getText().equals("v")
						&& !vehicleType.getText().equals("l")
						&& !vehicleType.getText().equals("a") ) {
						result.append("The vehicle type must be either g, c, d, v, l or a.\n");
						dataIsValid = false;
				}
			}
			
			if ( dataIsValid ) {
				try { Integer.parseInt(quantity.getText()); }
				catch (NumberFormatException n) { 
					result.append("The quantity field must contain an integer.\n");
					dataIsValid = false;
				}
			}
					
			if ( dataIsValid ) {
				dataIsValid = ( deadline.getText().matches("[0-9]{12}") || deadline.getText().length() == 0 ); 
				if (!dataIsValid) result.append("The input string is not using the valid date format.");
			}
			
			if ( dataIsValid ) {
				if (deadline.getText().length() != 0) {
					try {
						SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmm");
						formatter.setLenient(false);
						deadlineOfDelivery 			= new java.sql.Date(formatter.parse(deadline.getText()).getTime());
					}
					catch (ParseException e) {
						result.append("The date format is invalid.\n");
						dataIsValid = false;
					}
				}
			}
			
			if ( dataIsValid ) {
				dataIsValid = !( origin.getText().length() == 0 || destination.getText().length() == 0 || description.getText().length() == 0 );
				if ( !dataIsValid ) result.append("You cannot leave neither the description, the origin nor destination fields empty.\n");
			}
			
			if ( dataIsValid ) {
				int vehicleID 				= Integer.parseInt(idField.getText());
				String descr 				= description.getText();
				String typeOfVehicle		= vehicleType.getText();
				int quantityOfOrder			= Integer.parseInt(quantity.getText());
				String whereItComesFrom		= origin.getText();
				String whereItGoesTo		= destination.getText();
				String commentOnDelivery	= comments.getText();
				PreparedStatement insertNewEntry 	= con.prepareStatement("INSERT INTO orders (id, description, vehicle_type, quantity, origin, destination, " + 
				"deadline, comments) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?)");
				PreparedStatement updateOldEntry 	= con.prepareStatement("UPDATE orders SET description = ?, vehicle_type = ?," +
				 "quantity = ?, origin = ?, destination = ?, deadline = ?, comments = ? WHERE id = ?");
				PreparedStatement insertDefDate		= con.prepareStatement("INSERT INTO orders VALUES (?, ?, ?, ?, ?, ?, default, ?)");
				PreparedStatement updateDefDate		= con.prepareStatement("UPDATE orders SET description = ?, vehicle_type = ?," +
				 "quantity = ?, origin = ?, destination = ?, deadline = default, comments = ? WHERE id = ?");
				
				if ( idField.getText().length() == 0 ) { 		//there was no id input, so a new id is given and the entry is made
					Statement maxValQuery = con.createStatement();
					con.setAutoCommit(false);
					ResultSet rs = maxValQuery.executeQuery("SELECT MAX(id) FROM orders");
					vehicleID = rs.getInt(1);
					insertNewEntry.setInt(1, vehicleID);
					insertNewEntry.setString(2, descr);
					insertNewEntry.setString(3, typeOfVehicle);
					insertNewEntry.setInt(4, quantityOfOrder);
					insertNewEntry.setString(5, whereItComesFrom);
					insertNewEntry.setString(6, whereItGoesTo);
					insertNewEntry.setDate(7, deadlineOfDelivery);
					insertNewEntry.setString(8, commentOnDelivery);
					insertNewEntry.execute();
					con.commit();
					con.setAutoCommit(true);
					rs.close();
					maxValQuery.close();
				}

				else {				// if an ID was given, it may even update or create a row
					Statement searchForID = con.createStatement();
					ResultSet rs = searchForID.executeQuery("SELECT * FROM orders WHERE id = " + vehicleID);
				
					if (rs.next()) { 		// there was a line with such id
						updateOldEntry.setString(1, descr);
						updateOldEntry.setString(2, typeOfVehicle);
						updateOldEntry.setInt(3, quantityOfOrder);
						updateOldEntry.setString(4, whereItComesFrom);
						updateOldEntry.setString(5, whereItGoesTo);
						updateOldEntry.setDate(6, deadlineOfDelivery);
						updateOldEntry.setString(7, commentOnDelivery);
						updateOldEntry.setInt(8, vehicleID);
						updateOldEntry.executeUpdate();
					}
				
					else {				// new entry
						insertNewEntry.setInt(1, vehicleID);
						insertNewEntry.setString(2, descr);
						insertNewEntry.setString(3, typeOfVehicle);
						insertNewEntry.setInt(4, quantityOfOrder);
						insertNewEntry.setString(5, whereItComesFrom);
						insertNewEntry.setString(6, whereItGoesTo);
						insertNewEntry.setDate(7, deadlineOfDelivery);
						insertNewEntry.setString(8, commentOnDelivery);
						insertNewEntry.execute();
					}
				}
			}
		}
		catch (SQLException e) { result.append(e.toString()); }
	}