public RecordValue addRecordValue(RecordValue recordValue) throws SQLException {
	  PreparedStatement stmt = null;
	  Statement keyStmt = null;
	  ResultSet keyRS = null;
	  RecordValue returnRecordValue = null;
	  try {
	    String sql = "INSERT INTO record_values (batch_id, field_id, value, record_number) VALUES(?, ?, ?, ?)";
	    stmt = db.getConnection().prepareStatement(sql);
	    stmt.setInt(1, recordValue.getBatchId());
	    stmt.setInt(2, recordValue.getFieldId());
	    stmt.setString(3, recordValue.getValue());
	    stmt.setInt(4, recordValue.getRecordNumber());
	    if (stmt.executeUpdate() == 1) {
	    	keyStmt = db.getConnection().createStatement();
	    	keyRS = keyStmt.executeQuery("SELECT last_insert_rowid()");
	    	keyRS.next();
	    	int recordValueId = keyRS.getInt(1);
	    	returnRecordValue = new RecordValue(recordValueId, recordValue.getBatchId(), recordValue.getFieldId(), 
	    			recordValue.getValue(), recordValue.getRecordNumber());
	    } else {
	      System.out.println("Insert batch failed");
	    }
	  } catch (SQLException e) {
	    e.printStackTrace();
	  } finally {
	    if (stmt != null) stmt.close();
	    if (keyRS != null) keyRS.close();
	    if (keyStmt != null) keyStmt.close();
	  }
	  return returnRecordValue;
	}